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

【qt5_study】2.使用Qt Designer构造UI界面(信号与槽)

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

找到 Push Button,然后拖拽到中间的显示窗体里,如下图。

在 UI文件里连接信号与槽

在 UI设计器里有两种方法可以连接信号与槽。 初学者可能不了解什么是 Qt的信号与槽。
这里先简单的介绍一下信号与槽的功能。 所谓信号即是一个 对象发出的信号,槽即是当 这个对
象 发出这个信号时,对应连接的槽就发被执行或者触发。 可以说信号与槽在 Qt里是必不可少的。要想事件做出对应的动作就必须用到信号与槽。

点击信号槽连接的按钮如下, 如下图 ① 处, 点击进入信号槽连接模式(若想退出信号槽连
接模式,则点击 ① 处左边的按钮), 进入信号与槽的连接模式 后 ,将鼠标选中我们的“关闭程序
按钮 ,按住按钮,然后用鼠标向外拖动 如 ② 处。 此时就会出现信号槽连接的符号。

之后 按如下图步骤选择,左边的“关闭程序” pushButton按钮的信号,可以看到一个对象
的信号可以有多种。右边的 QMainWindow的槽函数 ,如果有其他对象,右边不一定只有
MainWidnow的槽函数(槽),也有可能是其他对象的槽。 我们选择按钮的 clicked()信号,将其
连接 MainWindow对象的 close()槽。这样就完成了信号与槽的连接 ,非常简单。 我们也可以预
知这个信号与槽的功能,当“关闭程序” pushButton发出了 clicked()信号(也就是单击信号)。
这个信号由“关闭程序” pushButton被单击时发出。 它就会触发 MainWindow的 close()。进而
使整个程序关闭。 MainWindow的 close()就是退出关闭程序,退出程序的意思。

点击“转到槽”后,弹出下面的窗口,这一步是先让我们选择信号。 按如下图选择。 如果
细心的同学,我们还发现这个 clicked()信号并不是 pushButton的 而是 QAbstactButton的 。 只
是 pusbButton继承了 QAbstracButton,同时把这个信号也继承了下来。除此之外我们还看到其
他信号也是 不是属于 pushButton的,也是被继承下来了。所以我们在 C++基础部分学过的继承。
在 Qt里的作用表现的淋漓尽致! 根本不用重写 pushButton的 clicked()事件。 pushButton只需要
继承父类的 clicked()事件即可

点击 OK后,就会跳转到槽函数里,这个代码由 Qt Creator自动生成 。同时在 mainwindow.h里声明了这个槽 函数 。

添加this->close();导函数,编译运行试试、

http://www.lryc.cn/news/610752.html

相关文章:

  • 16核32G硬件服务器租用需要多少钱
  • 工业级 CAN 与以太网桥梁:串口服务器CAN通讯转换器深度解析(下)
  • 前端实用工具方法 —— 持续更新中...
  • GPT-5的诞生之痛:AI帝国的现实危机
  • 前端权限设计
  • 云手机的主要功能都包含哪些?
  • MoonBit 月兔 - 云和边缘计算 AI云原生编程语言及开发平台
  • LangChain入门:代理、链、索引
  • WIN QT libsndfile库编译及使用
  • 【教程】Unity AssetBundle 资源管理方法
  • STM32F407VET6学习笔记10:移植smallmodbus
  • 【LeetCode 热题 100】347. 前 K 个高频元素——(解法一)排序截取
  • Redis类型之String
  • 【npm 解决】---- TypeError: crypto.hash is not a function
  • GPS信号捕获尝试
  • 【机器学习深度学习】模型剪枝
  • Python包安全工程实践:构建安全可靠的Python生态系统
  • 【学习笔记】NTP时间同步验证
  • 期权定价全解析:从Black-Scholes到量子革命的金融基石
  • Linux 逻辑卷管理:LVM 原理与 Stratis、VDO 特性对比
  • 基于 Spring Boot 的小区人脸识别与出入记录管理系统实现
  • 力扣经典算法篇-43-全排列(经典回溯问题)
  • css3属性总结和浏览器私有属性
  • Python、Java、C#实现浮点型转换为转型
  • Mysql使用Canal服务同步数据->ElasticSearch
  • 电子秤利用Websocket做为Client向MES系统推送数据
  • 文件编译、调试及库制作
  • 跑yolov5的train.py时,ImportError: Failed to initialize: Bad git executable.
  • 前端实现Excel文件的在线预览效果
  • 【机器学习】算法调参的两种方式:网格搜索(枚举)、随机搜索