当前位置: 首页 > news >正文

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

文章目录

  • 1 概要
  • 2 设计ui界面
    • 2.1 基于.ui文件先行设计ui界面
    • 2.2 基于.ui设计的界面框架进行更深层次设计
      • 2.2.1 添加事件函数
      • 2.2.2 添加额外组件
      • 2.2.3 添加QSS样式表
  • 3 效果展示
  • 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属性(了解即可)
在这里插入图片描述
其功能为:当属性值改变时,自动通知所有依赖该属性的 UI 元素更新,明确声明类的公共接口,提高代码可读性和维护性。
其组成如下:

  1. 类型 (Type): QString
    指定属性的数据类型,这里是 QString
  2. 属性名称 (Property Name): alsData, psData, irData(可使用(1)中的QString对象)
    属性的标识符,将在 QML 和元对象系统中使用
  3. 读取函数 (READ accessor): alsData, psData, irData
    指定用于读取属性值的成员函数,这些函数需要在类中实现
  4. 通知信号 (NOTIFY signal): ap3216cDataChanged
    当属性值改变时发出的信号,所有三个属性共享同一个通知信号

具体结构设计如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2.2 添加额外组件

比如我的.ui界面已经设置好,但是我想在最上层增加一个幕布效果的组件(即半透明的白色布),则这个时候更适合在代码中增加,因为基于layout的设置,主界面已成型,不再容易修改布局。

增加例子如下:
在这里插入图片描述

2.2.3 添加QSS样式表

样式表的添加可以参考以下两个链接:
[1] Qt关于qss文件的添加使用
[2]QSS – .qss文件的创建和使用

3 效果展示

在这里插入图片描述

4 总结

本章节讲述了如何快速设计qt文件,工程链接如下:https://download.csdn.net/download/qq_54050349/92121110

http://www.dtcms.com/a/477749.html

相关文章:

  • Hadoop面试题及详细答案 110题 (86-95)-- Hadoop生态系统工具
  • 基于单片机电器断路器保护器系统Proteus仿真(含全部资料)
  • 如何做天猫网站怎么做win10原版系统下载网站
  • FocusAny开源 #2:速算本Calculator
  • Typecho独立页面能否支持多个自定义永久链接路径(如 /special/ 和 /other/)
  • uniapp学习【路由跳转 +数据请求+本地存储+常用组件】
  • ads基本量的含义和计算方程(1.直流扫描)
  • ORACLE 高危漏洞(9.8分)
  • 【检索:LSM】7、LSM树深度解析:为什么日志系统首选LSM树而非B+树?从原理到实践
  • 网站推广句子快照关键词优化
  • (解决)重装系统电脑账户进不去被停用,PIN无法验证,提示0xc0000234
  • 属于门户网站的有个人网站制作多少钱
  • wpf 命令理解
  • [好用工具] 一款mac/windows电脑历史剪切板工具,类似著名的Paste
  • 【Qt开发】输入类控件(七)-> QSlider
  • Oracle Exadata一体机简介 1千多个W
  • Caffeinated for Mac 防止屏幕睡眠工具
  • Trae官网炫酷特效与vue-bits的使用
  • 网站内页修改关键字抖音广告投放平台官网
  • Artstudio Pro for Mac 绘图与图片编辑软件
  • 上班没事做看什么网站wordpress主题官方
  • .NET Framework 4.0和Visual Studio 2010的串口通信类
  • 20自由度全驱动:赋能Tesollo五指灵巧手精细柔性作业新可能
  • 基于FastAPI与LangChain的Excel智能数据分析API开发实践
  • 【四级】全国大学英语四级历年真题及答案解析PDF电子版(2015-2025年6月)
  • 专业制造双轴倾角传感器与水平监测传感器的优质厂家分析
  • QtitanNavigation赋能工业制造:提升生产效率的界面导航利器
  • 网站不备案做优化网站建设 中软
  • 成都市建设厅网站查询建设部举报网站
  • 优秘智能深度学习应用场景实战提升效率指南