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

【Qt学习】信号槽

文章目录介绍示例标准信号槽使用点击按钮关闭窗口自定义信号槽使用添加两个类声明信号饥饿信号无需定义声明和定义槽函数注册信号槽扩展介绍信号槽实际就是观察者模式发布-订阅。事件的捕捉和信号的发射都是由Qt框架内部实现的。示例标准信号槽使用点击按钮关闭窗口#includemainwindow.h#includeui_mainwindow.hMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui-setupUi(this);connect(ui-closeBtn,QPushButton::clicked,this,MainWindow::close);}MainWindow::~MainWindow(){deleteui;}connect是进行一个信号槽的注册并不是立马触发事件执行。method槽函数本质上是一个回调函数。是在信号产生后由Qt框架调用。QMetaObject::ConnectionQObject::connect(constQObject*sender,PointerToMemberFunction signal,constQObject*receiver,PointerToMemberFunction method,Qt::ConnectionType typeQt::AutoConnection);参数:-sender:发出信号的对象-signal:属于sender对象,信号是一个函数,这个参数的类型是函数 指针,信号函数地址-receiver:信号接收者-method:属于receiver对象,当检测到sender发出了signal信号,receiver对象调用method方法信号发出之后的处理动作// 参数 signal 和 method 都是函数地址, 因此简化之后的 connect() 如下:connect(constQObject*sender,QObject::signal,constQObject*receiver,QObject::method);自定义信号槽使用下面试验这个逻辑女朋友饿了发出信号我收到信号我去做饭。添加两个类声明信号饥饿信号无需定义声明和定义槽函数其中public后面的slots在qt5版本及以后可以省略。但是留着能更清除看出是槽函数用途。注册信号槽mainwindow.h中增加了两个变量girlFriend和me#ifndefMAINWINDOW_H#defineMAINWINDOW_H#includeQMainWindow#includeme.h#includegirlfriend.hQT_BEGIN_NAMESPACEnamespaceUi{classMainWindow;}QT_END_NAMESPACEclassMainWindow:publicQMainWindow{Q_OBJECTpublic:MainWindow(QWidget*parentnullptr);~MainWindow();private:Ui::MainWindow*ui;GirlFriend*girlFriend;Me*me;};#endif// MAINWINDOW_Hmainwindow.cpp中初始化两个变量并注册信号槽以建立关系#includemainwindow.h#includeui_mainwindow.hMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui-setupUi(this);connect(ui-closeBtn,QPushButton::clicked,this,MainWindow::close);girlFriendnewGirlFriend;menewMe;//注册信号槽connect(girlFriend,GirlFriend::hungry,me,Me::eat);//发射自定义信号emit girlFriend-hungry();}MainWindow::~MainWindow(){deleteui;}voidMainWindow::hungeySlot(){girlFriend-hungry();}其中emit可以省略。主要增加可读性方便识别 。扩展一个信号可以连接多个槽函数。写多个connect就行槽函数执行顺序随机一个槽函数可以连接多个信号信号可以连接信号进行信号的传递//点击按钮后让女朋友发射饿了的信号。// connect(ui-hungryBtn, QPushButton::clicked, this, MainWindow::hungeySlot);//进行信号的传递connect(ui-hungryBtn,QPushButton::clicked,girlFriend,GirlFriend::hungry);信号槽可以断开使用disconnect。参数和connect相同。
http://www.gsyq.cn/news/1354500.html

相关文章:

  • 2026大竹县黄金回收避坑指南;闲置黄金变现;认准铭润金银回收,诚信靠谱 - 亦辰小黄鸭
  • C++图文并茂轻松进阶面向对象
  • STM32CubeMX与Keil RTX中断优先级冲突解决方案
  • 义乌GEO优化公司哪家靠谱?拒绝转包套路,4个维度精准筛选优质服务商(2026年5月最新) - GEO排行榜
  • 2026大足县黄金回收避坑指南;闲置黄金变现;认准铭润金银回收,诚信靠谱 - 亦辰小黄鸭
  • DownKyi完整指南:如何轻松下载B站8K超高清视频的终极教程
  • Topit 技术深度:macOS窗口层级管理的现代SwiftUI实现与架构解析
  • 嘉兴黄金回收门店避坑指南 六家靠谱店铺推荐 优选长悦 - 专业黄金回收
  • 微信PC端二维码刷新机制深度解析:心跳、状态与逆向定位
  • ncmdumpGUI:一键解密网易云音乐NCM文件,让音乐重获自由
  • 2026年成都公司注销代办费用是多少? - 品牌推荐官方
  • 如何用Python轻松读取通达信数据:Mootdx完整指南
  • 详解Linux文件操作知识点
  • 终极指南:如何在Windows上轻松读写Btrfs文件系统
  • CVE-2026-20223深度解析:Cisco零信任平台满分漏洞,未认证API一键接管全局
  • 机器人任务级迭代学习控制技术解析与应用
  • Office RibbonX Editor:重塑Microsoft Office界面定制的终极免费工具
  • 同样是写毕业论文,为什么有人神速定稿,有人越写越崩?
  • JBoss JMXInvokerServlet反序列化漏洞深度解析
  • 如何5分钟打造Zotero中文文献管理终极方案:茉莉花插件完全指南
  • ppInk:Windows上最强大的免费屏幕标注工具终极指南
  • 终极Galgame翻译方案:如何免费畅玩日语视觉小说
  • 香城人力资源服务选购指南,实力与口碑兼具的选择 - mypinpai
  • 2026年AI智能算力服务研究报告:HBM、CPO与重构|附240+份报告PDF、数据、可视化模板汇总下载
  • Unity UGUI循环列表实战:SuperScrollView高性能滚动优化指南
  • 终极指南:如何使用Bilibili缓存视频合并工具完美导出完整MP4文件
  • 性价比高的热力管道厂商,锅炉安装口碑好 - mypinpai
  • JWT安全实战:从算法漏洞到生产级防御体系
  • 工业级LSTM时序建模实战:门控机制、硬件约束与部署优化
  • 如何高效使用Maya glTF插件:专业3D模型Web化转换完整指南