当前位置: 首页 > 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 项目

关闭程序

相关文章:

  • 第41天-Python+Qt四屏播放器开发指南
  • 第12天-Python+Qt5开发实战:10大经典案例与深度解析
  • Qt 控件发展历程 + 目标(1)
  • Visual Studio 制作msi文件环境搭建
  • Word 转 HTML API 接口
  • RK3568 OH5.1 源码编译及问题
  • 华为云鲲鹏型kC2云服务器——鲲鹏920芯片性能测评
  • LLM笔记(十)vLLM(1)PagedAttention论文笔记
  • 汇川PLC通过Profinet转ModbusTCP网关读取西门子PLC数据案例
  • 足式机器人经典控制常用的ROS库介绍
  • SpringBoot与GeoHash整合,实现骑手就近派单功能
  • 离线环境破局:聚客AI无外网部署Dify的依赖镜像打包与增量更新方案
  • 前端开发——前端样式BUG调试全指南2025终极版
  • 【web应用】前后端分离开源项目联调运行的过程步骤ruoyi
  • SCAU--平衡树
  • 武汉副市长李湛莅临指导 珈和展会精彩亮相引《武汉电视台》深度报道 以硬核科技赋能农业强链新范式获政府媒体“双重点赞”
  • springboot3+VUE3-(0)-环境搭建+jwt请求与回应
  • 深度学习-runner.run(data_loaders, cfg.workflow)内部执行过程
  • 物联网(IoT)智能项目全景指南:技术构架、实现细节与应用实践
  • 以太联 - Intellinet 闪耀台北 SecuTech 国际安全科技应用博览会
  • 小马智行一季度营收增12%:Robotaxi收入增长两倍,预计车队规模年底到千台
  • 竞彩湃|水晶宫夺冠后乘胜追击,四大皆空曼城人间清醒?
  • “十五五”规划编制工作开展网络征求意见活动
  • 人民日报头版:紧盯“学查改”,推动作风建设走深走实
  • 著名心血管病学专家李国庆教授逝世,享年63岁
  • 马上评|训斥打骂女儿致死,无暴力应是“管教”底线