初学QT:使用QtDesigner绘制一个简单的界面(Day01)

news2024/11/18 8:27:44

关于Qt

打算在这里记录我学习qt过程中遇见的问题的收获
今天是学习qt的第一天,首先找了一个界面打算照着这个界面写一个一样的
因为是第一天,所以我用的是qt designer写的
其中遇到的问题:

设置背景图片

首先不能直接添加图片到背景图片中,应该把这个背景图片作为这个项目的一种资源添加到项目中,首先鼠标按在项目中,右键后点击“Add New”
在这里插入图片描述
后在新建文件中点击“Qt”–>“Qt Resource File”–>choose

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在执行上述操作之后,可以选择Add Files直接添加图片资源,
在这里插入图片描述
之后来到Forms文件夹中的.ui文件,就可以开始拖动控件到主窗体里面了。
好了,现在来到编辑gui了,如果要添加背景图片,建议加一个控件(QLabel或者Frame都可以)覆盖整个窗口屏幕,把背景图放到QLabel中,这样会省去很多麻烦(希望我以后看这篇博客的时候还记得为什么我写了一上午还是写不出来).
然后选中这个QLabel(注意选中Label控件,如果不确定可以查看)右边的控件对象的树文件结构,右键之后再点击“改变样式表”,点击“添加资源”的下拉表,选择“border_image”,后按如下图进行选择,点击OK,背景图片就添加好了,border_image的类型是平铺,这样可以在调节主窗体的大小的时候背景图片也可以随着缩放比例。
在这里插入图片描述

点击Apply之后主窗体编程下图这样就说明设置成功了
对比一下:
在这里插入图片描述
请添加图片描述

设置窗体透明

这里随意添加一个控件,比如Label,还是点击目标窗体后右键点击“改变样式表”,在框中输入:

background-color: transparent;

点击apply就可以看到操作成功了,虽然有的博客写设置颜色的Alpha通道为0,就可以,但是我试过没有什么用

关于Layout

我一开始因为不知道有Layout这个东西,也不知道Layout是做什么用的,到了做完了构建完了运行之后才发现,主窗口用鼠标缩放的时候,里面的控件没有办法随着窗口变化而变化,看起来非常不美观,之后查了资料才发现Layout这个控件,这个的作用就是固定一个布局,不管主窗口大小怎么变化,布局中的控件之间的相对位置是不变的,同时这样也省去的很多时间,而且因为qt是使用C++开发的,所以类的继承与派生也是适用的,比如果有一个控件FWidget,这个控件中还有几个控件SWidget1、Swidget2…这里面FWidget就是父窗体、SWidget1和2就是子窗体,这父窗体中设置属性,也会影响到父窗体,这也是为什么我之前说设置背景图片不要直接使用主窗体,这样后果会很灾难。。。

设置主窗体中的标题栏隐藏

因为最后运行出来的时候标题栏有点不太美观,就查资料看了几篇博客,还是没有发现怎么在qtdesigner中设置隐藏标题栏的命令,所以看在mainwindow.cpp中设置比较简单,
使用这个命令,就可以设置隐藏标题栏。
在这里插入图片描述

this->setWindowFlags(Qt::FramelessWindowHint|windowFlags());

ps:当时只顾着运行成功就没想过了,之后想关闭的时候一时间不知道怎么关闭(因为我设置的界面是全屏的所以没办法使用任务栏关闭程序),之后还是使用win键出现标题栏成功关闭了
对比一下;
在这里插入图片描述
在这里插入图片描述

还有一些

在.ui文件中进行的操作,保存之后进行构建(build)之后执行,进入项目构建的路径就可以发现
在这里插入图片描述
这里生成了ui_mainwindow.h的头文件,为什么呢,因为qt的内部会对ui文件进行编译生成一个.h头文件,进一步说就是将.ui的xml文件转译成头文件,怎么看.ui的xml格式呢,点击.ui文件后,点击左侧的debug按钮,就可以看到xml文件,这个时候我才发现原来xml的应用领域已经这么广了。。。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在华为OD机试中获得满分?Java实现【分界线】一文详解!

✅创作者:陈书予 🎉个人主页:陈书予的个人主页 🍁陈书予的个人社区,欢迎你的加入: 陈书予的社区 🌟专栏地址: Java华为OD机试真题(2022&2023) 文章目录 1. 题目描述2. 输入描述3. 输出描述…

在 Alma Linux 9 上安装 Node.js 的 3 种不同方法

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建快速、可扩展的网络应用程序。在 Alma Linux 9 上安装 Node.js 可以为开发者提供强大的工具和库来开发服务器端应用程序。 本文将介绍三种不同的方法来安装 Node.js 在 Alma Linux 9 上。 1. 方法一…

LLMs的自动化工具系统(HuggingGPT、AutoGPT、WebGPT、WebCPM)

在前面两篇博文中已经粗略介绍了增强语言模型和Tool Learning,本篇文章看四篇代表性的自动化框架,HuggingGPT、AutoGPT、WebGPT、WebCPM。 Augmented Language Models(增强语言模型)Toolformer and Tool Learning(LLM…

chatgpt赋能python:了解PythonSpace:Python编程中的重要概念

了解Python Space:Python编程中的重要概念 Python Space是Python编程的一个关键概念,可以帮助你更好地理解Python中的命名空间和作用域。在这篇文章中,我们将深入探讨Python Space,介绍命名空间的概念,讨论命名空间和…

支付系统设计四:支付核心设计03-快捷发送短信(失败转代扣)

文章目录 前言一、背景1. 应用架构2. 分层支撑机制 二、银行卡快捷支付1. 用户操作流程2. 系统执行流程--正常2.1 发送短信2.2 短信确认 3. 系统执行流程--异常3.1 异常环节3.1.1 路由失败3.1.2 调用支付渠道失败 3.2 异常处理3.2.1 路由失败3.2.2 调用支付渠道失败 4. 流程解析…

指导实验心得5篇实用技巧

指导实验心得1 我觉得化工原理实验是一门验证性课程,它把我们在化工原理学到的各种单元操作化为实实在在的东西,而让我们把学到的知识认识到它的实在性。流体输送——离心泵、过滤——板框压滤机、对流传热——套管式换热器、吸收蒸馏——填料塔板式塔、…

AF594 NHS,Alexa Fluor594 NHS Ester,AF 594 NHS 活化酯,用于成像和流式细胞术中的稳定信号生成

【产品描述】 陕西新研博美生物科技有限公司供应的​Alexa Fluor594是一种鲜红色染料。Alexa Fluor用于成像和流式细胞术中的稳定信号生成 594染料是水溶性的,并且从pH 4到pH 10对pH不敏感。Alexa Fluor 594染料与多种抗体、肽、蛋白质、示踪剂和扩增底物偶联&#…

java内存问题

各种OOM的情况 1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。 2. 栈溢出-java.lang.OutOfMemorryError。 3. 栈溢出-java.lang.StackOverFlowError。 4. 元信息溢出-java.lang.OutOfMemoryError: Metaspace。 5. 直接内存溢出-java.lang.OutOfMemoryError: Direct …

软件开发工程师个人简历模板3篇

软件开发工程师个人简历模板篇1 姓 名: 张先生 性 别: 男 婚姻状况: 未婚 民 族: 汉族 户 籍: 广东-珠海 年 龄: 28 现所在地: 广东-珠海 身 高: 168cm 希望地区: …

Toolformer and Tool Learning(LLMs如何使用工具)

大模型的能力让学术和工业界都对通用人工智能的未来充满幻想,在前一篇博文中已经粗略介绍, Augmented Language Models(增强语言模型) ALM的两大思路是推理和工具,本篇博文整理两篇关于Toolformer或Tool Learning的论…

web实现日历、阳历农历之间相互转换、npm、push、unshift、includes、innerHTML

文章目录 1、原生web实现效果图htmlJavaScriptstyle vue2实现htmlJavaScript 1、原生web实现 效果图 html <div class"box"><div class"week"><div>星期日</div><div>星期一</div><div>星期二</div><…

Three.js--》建模软件如何加载外部3D模型?

目录 三维建模软件的介绍 Blender官方文档介绍 Blender软件安装 GLTF格式简介 gltf不同文件形式 看过我之前讲解的three文章的人都知道&#xff0c;我在创建模型的时候都没有使用three.js自带的一些简单模型&#xff0c;而是引入外部的模型并加载到页面上&#xff0c;简言…

数据库基础——1.数据库概述

从这篇文章我们开始学习数据库的相关知识 目录 1.为什么要使用数据库 2.数据库与数据库管理系统 2.1相关概念 2.2数据库与数据库管理系统的关系 ​编辑2.3常见的数据库管理系统 2.4常见的数据库介绍 3.MySQL介绍 3.1概述 3.2关于MySQL8.0 3.3 Oracle vs MySQL 4.RD…

Java 反序列化漏洞

反序列化漏洞是指程序在反序列化期间&#xff0c;通过特殊的调用链引发的一系列安全问题。编程语言中只要存在序列化&#xff0c;反序列化功能就可能存在反序列化的安全问题。这里只针对Java和PHP进行讨论。 序列化漏洞概述 序列化的存在主要是为了存储和传输&#xff0c;将这…

Redis入门篇-初

结束时长 Redis十大数据类型 基本目录 实际的类型是没有被红框框选的10个类型 Strings 1 Lists 2 Sets 3 Hashes 4 Sorted sets 5 Streams 6 Geospatial 7 HyperLogLog 8 Bitmaps 9 Bitfields 10类型展示 Strings --> HelloRedis Lists [A>B>C>C] Sets {A<…

第七章 文件读写

内容框图 7.1 文件读写介绍 文件打开和关闭 用word编写一份简历&#xff0c;应该有哪些流程&#xff1f; 打开word软件&#xff0c;新建一个word文件写入个人简历信息保存文件关闭word软件 同样&#xff0c;编程中操作文件的整体过程类似。 打开文件&#xff0c;或者新建立一个…

chatgpt赋能python:Python中的%z格式化代码

Python中的%z格式化代码 在Python编程中&#xff0c;%z是一个非常有用的格式化代码。它用于表示时区偏移量&#xff0c;并将其与日期时间字符串一起显示。在本文中&#xff0c;我们将深入了解Python中的%z代码&#xff0c;并探讨它如何帮助您处理日期和时间。 什么是%z&#…

chatgpt赋能python:PythonTCP断开连接原因和解决方案

Python TCP 断开连接原因和解决方案 Python 是一种广泛使用的编程语言&#xff0c;它支持网络编程、数据处理、人工智能、机器学习等诸多领域。在网络编程中&#xff0c;Python 通常使用 TCP 连接传输数据。然而&#xff0c;在使用 TCP 连接传输数据的过程中&#xff0c;我们可…

koa2获取HTTP请求参数

HTTP 什么是HTTP HTTP&#xff0c;即超文本传输协议&#xff0c;是一种实现客户端和服务器之间通信的响应协议&#xff0c;它是用作客户端和服务器之间的请求。 客户端&#xff08;浏览器&#xff09;会向服务器提交HTTP请求&#xff1b;然后服务器向客户端返回响应&#xf…

2023 Q1 ZK报告

1. ZK数据 2023年4月4日&#xff0c;ZK社区举办了zkSummit 9。 ZK技术应用场景主要分布情况为&#xff1a; 其中&#xff1a; 1&#xff09;ZK用于隐私场景案例最多&#xff0c;占比12.9%&#xff0c;说明人们对 将ZK技术用于隐私保护 兴趣浓厚。2&#xff09;ZK用于扩容场景…