【QT界面设计学习篇】qt快速开发技巧

文章目录

  • [1 概要](#1 概要)
  • [2 设计ui界面](#2 设计ui界面)
    • [2.1 基于.ui文件先行设计ui界面](#2.1 基于.ui文件先行设计ui界面)
    • [2.2 基于.ui设计的界面框架进行更深层次设计](#2.2 基于.ui设计的界面框架进行更深层次设计)
      • [2.2.1 添加事件函数](#2.2.1 添加事件函数)
      • [2.2.2 添加额外组件](#2.2.2 添加额外组件)
      • [2.2.3 添加QSS样式表](#2.2.3 添加QSS样式表)
  • [3 效果展示](#3 效果展示)
  • [4 总结](#4 总结)

1 概要

使用qt快速开发我们想要的图形界面。QT中比较普遍的设计方式是混合开发模式,即在.ui文件中先进行整体框架的设计,之后再基于设计的框架在代码中增加我们需要的功能或较为复杂的子组件。此处我们采用混合开发模式对我们的界面进行开发。

我们将会分为4各部分讲述:

(1)创建工程

(2)添加事件函数

(3)添加额外组件

(4)添加CSS样式表

2 设计ui界面

2.1 基于.ui文件先行设计ui界面

1.新建工程




这里有两种:

  1. QMainWindow
  2. Qwidget

**QWidget:**一块空白的画布或一个通用的容器。它是所有用户界面对象的基类。

**QMainWindow:**一个已经为你装好了画架、调色板架、工具栏挂钩和状态栏的"高级画布"。它是为创建典型主应用程序窗口而设计的。

我们此处选择QWidget即可。

此步为选择你的工具链,该工具链在安装qt的时候会同时安装。

2.2 基于.ui设计的界面框架进行更深层次设计

对于更深层次的设计涉及三个方面:(1) 添加控件的事件函数 (2) 代码中增加.ui文件中不方便设计的组件 (3) 设置组件的样式表

2.2.1 添加事件函数

基于设计好的图形界面可以添加组件对应的事件函数,对于按钮等事件函数添的

方法主要有四个:

(1) .ui界面中直接添加槽函数

这样的好处是.ui会直接生成相应的事件函数

(2) 在代码中主动绑定:

其中on_pushButton_clicked函数是我们自定义名称的需要绑定的函数。

(3) 通过Lanbda表达式(更加轻洁式地定义事件函数)

着重关注最后一个参数:

this, customMessage\], 这是 Lambda 表达式的捕获列表,它决定了哪些外部变量可以在 Lambda 内部使用: (4) 还有个Q_PROPERTY属性(了解即可) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9401dc1fe513405987dd9ecffc53e7bd.png) 其功能为:当属性值改变时,自动通知所有依赖该属性的 UI 元素更新,明确声明类的公共接口,提高代码可读性和维护性。 其组成如下: 1. **类型 (Type):** QString 指定属性的数据类型,这里是 QString 2. **属性名称 (Property Name):** alsData, psData, irData(可使用(1)中的QString对象) 属性的标识符,将在 QML 和元对象系统中使用 3. **读取函数 (READ accessor):** alsData, psData, irData 指定用于读取属性值的成员函数,这些函数需要在类中实现 4. **通知信号 (NOTIFY signal):** ap3216cDataChanged 当属性值改变时发出的信号,所有三个属性共享同一个通知信号 具体结构设计如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4102bd4437d9497cbfe7924319d3eb5c.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6cf7fbb5caf044728ba016eef9072c78.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c447583f734144749f8dca70aa6eea08.png) #### 2.2.2 添加额外组件 比如我的.ui界面已经设置好,但是我想在最上层增加一个幕布效果的组件(即半透明的白色布),则这个时候更适合在代码中增加,因为基于layout的设置,主界面已成型,不再容易修改布局。 增加例子如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/54044f3ec4e845b5823b31eaeeabddee.png) #### 2.2.3 添加QSS样式表 样式表的添加可以参考以下两个链接: [\[1\] Qt关于qss文件的添加使用](https://blog.csdn.net/qq_57049935/article/details/135950649) [\[2\]QSS -- .qss文件的创建和使用](https://www.cnblogs.com/zzzsj/p/14605124.html) ## 3 效果展示 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/82ba8a56928545cb9d43d7b11f0141de.png) ## 4 总结 本章节讲述了如何快速设计qt文件,工程链接如下:https://download.csdn.net/download/qq_54050349/92121110

相关推荐
宏笋3 小时前
Qt 绘制彩色文本,包括字符颜色分割、动画效果和渐变等多种花式效果
qt
hqyjzsb3 小时前
2025 年项目管理转型白皮书:AI 驱动下的能力重构与跨域突破
开发语言·人工智能·重构·产品经理·编程语言·caie
奶茶树3 小时前
【C++】12.多态(超详解)
开发语言·c++
草莓熊Lotso3 小时前
《算法闯关指南:优选算法--二分查找》--17.二分查找(附二分查找算法简介),18. 在排序数组中查找元素的第一个和最后一个位置
开发语言·c++·算法
努力努力再努力wz3 小时前
【C++进阶系列】:万字详解特殊类以及设计模式
java·linux·运维·开发语言·数据结构·c++·设计模式
磨十三3 小时前
【C++进阶】从零实现一个支持动态扩容的 Vector 容器(含移动语义与内存管理详解)
开发语言·c++
Mcband3 小时前
Apache Commons IO:文件流处理利器,让Java IO操作更简单
java·开发语言·apache
泽虞3 小时前
《Qt应用开发》笔记p4
linux·开发语言·数据库·c++·笔记·qt·算法
ajassi20003 小时前
开源 C++ QT QML 开发(十三)多线程
c++·qt·开源