5、信号,带参数
信号,带参数,可以传递参数给连接的槽函数。信号、槽函数类型要一致。
新建项目,QWidget,不勾选ui
/*mywidget.h代码*/ #ifndef MYWIDGET_H #define MYWIDGET_H #include <QWidget> #include <QPushButton> //按钮 #include <QDebug> //打印 class MyWidget : public QWidget { Q_OBJECT public: MyWidget(QWidget *parent = 0); ~MyWidget(); void sendSignal(); //自定义的函数,发送信号 void MySlot(int a,QString str); //接收信号的槽函数 signals: void MySignal(int a,QString str);//信号与槽相对,信号传参给槽函数 private: QPushButton b; //按钮 }; #endif // MYWIDGET_H
/*mywidget.cpp代码*/ #include "mywidget.h" MyWidget::MyWidget(QWidget *parent) : QWidget(parent) { b.setText("打印参数"); b.setParent(this); //按钮放在本窗体上 connect(&b,&QPushButton::pressed,this,&MyWidget::sendSignal); connect(this,&MyWidget::MySignal,this,&MyWidget::MySlot); } void MyWidget::sendSignal() { emit MySignal(520,"这不是节日!");//发送信号,传参给槽函数 } void MyWidget::MySlot(int a,QString str) { qDebug()<<a<<str.toUtf8().data();//注意字符串的输出方式,qDebug()类似cout } MyWidget::~MyWidget() { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界