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

使用 Qt Designer 开发

         Qt Designer 是属于 Qt Creator 的 一个功能而已,Qt Designer 也叫 UI 设计师或者 UI 设计器,这都是指的同一 个东西而已。

一、在ui文件添加一个按钮

 1、新建一个项目

         项目名为 02_designer_example

构建系统可选择 CMake qmake, Qbs 对于 CMake 我们比较熟悉,用于生成 Makefile ,那么
qmake Qbs 也同样道理, qmake cmake 比较常用。我们需要选择 qmake
        这里默认选择的基类为 QMainWindow 。在 Base class 一项中我们还可以看到还有 QWidget
QWialog 这样的基类可以选择。 简单的来说,我们创建 的这个项目是基于 QMainWindow 类去开发的。默认勾选“ Generate form ”,意思是生成 ui 窗体 文件 mainwindow.ui 。为了学习方便,我们统一默认基类为 QMainWindow ,但是注意,在嵌入 式里一般不需要标题栏,状态栏等,所以常用的是 QWidget 基类。
        QMainWindow:主窗口类,主窗口具有主菜单栏、工具栏和状态栏。类似于一般的应用程
序的主窗口。如果你想做个嵌套的窗口程序开发的软件,不妨选择这个 QMainWindow
        QWidget:是可视界面类的基类,也就是说 QMainWindow 类也是由 QWidget 继承封装而来。
所以 QWidget 要比 QMainWindow 功能少一些。
         QDialog :对话框类,建立一个对话框界面。比较少使用此项作为基类。一般 QMainWindow 和 QWidget 作为基类的居多。 注因为 QWidget 不带窗口标题栏等,嵌入式里最好 QWidget

2、按钮添加

将这个 PushButton text 属性(文本属性)改为“关闭程序”。我们 要设计点击这个按钮将关闭这个窗口,关闭这个程序。

3、在ui文件里连接信号与槽

UI 设计器里有两种方法可以连接信号与槽。
信号:是一个对象发出的信号
槽:是当这个对象发出这个信号时,对应连接的槽就发被执行或者触发。
UI 设计器里信号与槽的连接方法一:
在主窗体的上面部分,我们可以看到一些小小的按钮,如下图框框部分。用鼠标放在这些按钮上面可以查看这个按钮是什么作用。信号槽连接的按钮也在上面。
点击信号槽连接的按钮如下,如下图①处,点击进入信号槽连接模式(若想退出信号槽连 接模式,则点击①处左边的按钮),进入信号与槽的连接模式后,将鼠标选中我们的“关闭程序” 按钮,按住按钮,然后用鼠标向外拖动,如②处。此时就会出现信号槽连接的符号。
按如下图步骤选择,左边的“关闭程序” pushButton 按钮的信号,可以看到一个对象的信号可以有多种。右边的 QMainWindow 的槽函数,如果有其他对象,右边不一定只有 MainWidnow 的槽函数(槽),也有可能是其他对象的槽。我们选择按钮的 clicked() 信号,将其连接 MainWindow 对象的 close() 槽。这样就完成了信号与槽的连接,非常简单。我们也可以预知这个信号与槽的功能,当“关闭程序”pushButton 发出了 clicked() 信号(也就是单击信号)。 这个信号由“关闭程序”pushButton 被单击时发出。它就会触发 MainWindow close() 。进而 使整个程序关闭。MainWindow close() 就是退出关闭程序,退出程序的意思。
完成信号槽连接,如下图。要想返回编辑部件模式点击如下图标注位置的按钮。下图就是 信号与槽连接的图示了。在编辑部件模式下我们是看不见的,只有信号槽模式才能看见这样的 图示。
UI 设计器里信号与槽的连接方法二:
选中“关闭程序” pushButton 按钮,然后右键,如下图。选择“转到槽”。
点击“转到槽”后,弹出下面的窗口,这一步是先让我们选择信号。按如下图选择。我们还发现这个 clicked() 信号并不是 pushButton 的,而是 QAbstactButton 的。只是 pusbButton 继承了 QAbstracButton ,同时把这个信号也继承了下来。除此之外我们还看到其 他信号也是不是属于 pushButton 的,也是被继承下来了。所以我们在 C++ 基础部分学过的继承。在 Qt 里的作用表现的淋漓尽致!根本不用重写 pushButton clicked() 事件。 pushButton 只需要 继承父类的 clicked() 事件即可!
点击确认 后,就会跳转到槽函数里,这个代码由 Qt Creator 自动生成。
同时在 mainwindow.h 里声明了这个槽函数。

找到 on_pushButton_clicked 这个槽函数里。在这个槽数里写上 this->close();调用 close() 方法关闭整个程序。

4、编译及运行创建的 UI 项目

关闭程序

http://www.xdnf.cn/news/547435.html

相关文章:

  • [ARM][汇编] 02.ARM 汇编常用简单指令
  • HOW - 结合 AI 进行 Tailwind 样式开发
  • Secarmy Village: Grayhat Conference靶场
  • SpringMVC所有注解按照使用位置划分
  • 基于matlabcd7.x的无网格近似方法
  • CSS 样式表的四种应用方式详解以及css注释的应用
  • TypeScript与JavaScript的异同
  • MySQL:to many connections连接数过多
  • 指令烧录ORIN NANO操作系统
  • RocketMQ实战—订单系统面临的技术挑战
  • 开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享
  • 工业数据治理标准规范深度解析
  • 大模型应用开发“扫盲”——基于市场某款智能问数产品的技术架构进行解析与学习
  • 解决git中断显示中文为八进制编码问题
  • 设计模式 - 工厂模式
  • 中断全攻略:单片机优先级与 NVIC 详解(超形象解释)
  • Kubernetes中微服务JVM监控与自动发现的解决方案
  • HarmonyOS5云服务技术分享--云数据库使用指南
  • (十三)深入了解AVFoundation-采集:视频帧采集与实时滤镜处理
  • Https流式输出一次输出一大段,一卡一卡的-解决方案
  • 海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像
  • 【Unity】DOTween的常用函数解释
  • Java 大视界——Java大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
  • 【数据结构】队列的完整实现
  • 五:操作系统内存管理之连续内存分配
  • 机器学习10-随机森林
  • 解决将cpp编译为dll,使用ctype的cdll调用,printf不输出在终端
  • 算法与数据结构:位运算与快速幂
  • 地理信息数据格式.GeoJSON数据格式介绍
  • 无人机避障——深蓝学院浙大Fast-planner学习部分(采用均匀B-Spline和非均匀B-Spline进行轨迹优化和时间重分配)