首页 > 其他分享 >Qt信号槽

Qt信号槽

时间:2023-05-14 22:34:26浏览次数:41  
标签:Qt5 Qt ui connect 信号 slots 写法

Qt 信号槽   Qt的信号槽,除了使用信号连接槽,还可以信号连接信号,断开信号,发送(转发)信号。   一个信号可以连接一个槽,也可以一个信号连接多个槽,还可以多个信号连接一个槽。  

// 信号连接槽
connect(发送者,信号,接受者,槽);

// 信号连接信号
connect(发送者,信号,接受者,信号);

// 断开信号连接
disconnect(发送者,信号,接受者,信号|槽);

// 发送信号
emit 信号();

 

 

信号槽的写法有Qt4版本和Qt5版本,两种写法。 主要是看个人习惯,一般我的习惯是,简单的槽函数就用Qt5写法加lambda来写,复杂的槽函数就用Qt4写法来写。  
/* 按钮,信号不带参数*/
// Qt4 写法
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(my_slots_1()));
// Qt5 写法一
connect(ui.pushButton, &QPushButton::clicked, this, [=]() {QMessageBox::information(this, "123", "123"); });
// Qt5 写法二
connect(ui.pushButton, &QPushButton::clicked, this, &MyWidget::my_slots_1);
// Qt5 写法三,调用QWidget自带的槽函数
connect(ui.pushButton, &QPushButton::clicked, this, &MyWidget::close);


/* 下拉框,信号带参数 */
// Qt4 写法
connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(my_slots_2(int)));
// Qt5 写法
connect(ui.comboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [=](int index) {QMessageBox::information(this, "123", "123"); });

 

 

 

自定义信号与槽(signals、slots)
class MyWidget : public QDialog
{
    Q_OBJECT

public:
    MyWidget(QWidget *parent = nullptr);
    ~MyWidget();

signals:
    void my_signals_1();        // 自定义信号

public slots:
    void my_slots_1();          // 自定义槽函数1
    void my_slots_2(int);       // 自定义槽函数2

private:
    Ui::QtWidgetsApplication1Class ui;
};

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Qt5,Qt,ui,connect,信号,slots,写法
From: https://www.cnblogs.com/shiyixirui/p/17400428.html

相关文章

  • 使用4G通信模块和MQTT协议,完成物联网设备开发。
    使用4G通信模块和MQTT协议,完成物联网设备开发。(1)安装并使用4G模块通信模块,建立microPython开发环境;(2)使用提供的Demo开发例程,使用MQTT传输协议连接阿里或腾讯网站,完成物联网设备开发。(3)将温湿度信息上传到网站;(4)手机APP查看数一、这是我之前写关于阿里云怎么在线调试设备的。......
  • qt5.14.modbus rtu源码,运行无问题! ---Modbus具有两种串行
    qt5.14.modbusrtu源码,运行无问题!---Modbus具有两种串行传输模式:分别为ASCII和RTU。此源代码是RTU。Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,每个从站必须有唯一的地址,从站的地址范围为0-247,其中0为广播地址,从站的实际地址范......
  • 多线程qt5 c++ 工业自动化上位机源代码 Qt5之工业应用! 一套完
    多线程qt5c++工业自动化上位机源代码Qt5之工业应用!一套完整工程,链接PLC,工业无人值守自动扫码使用,无线扫码枪SR1000的使用,使用qt5.14,用qtcreator加载工程后,编译,运行,可调试可扩展,目的是学习qt开发方式。Sqlserver存储方式,查询自由。excel方便导出,c++效率无需赘言。不懂的随时和卖......
  • Qt5 C++ 多线程工业气体标定 1)使用OPC 封装COM 2)C++调用OPC; 3
    Qt5C++多线程工业气体标定1)使用OPC封装COM2)C++调用OPC;3)使用经典界面;4)使用QT专业皮肤编程qss;5)C++链接PLC读写数据;6)赠送KEPSVR服务器;参数如下:-----------------------------1)编程语言:C++(11或以上);-----------------------------2)编程环境:QT5.14;-----------------------------......
  • Qt实战,50套纯源码不怕你学不会! QT_多线程生产制造MES 1,
    Qt实战,50套纯源码不怕你学不会!QT_多线程生产制造MES1,现场实战项目。2,这是一个汽车部件制造企业的一条厂线现场精密控制。3,由本人单独完成。设计技术众多,C++,PLC,OPC,工业以太网(扫码枪),串口扫码枪,多种数据库(多台设备)无缝连接与切换。与该公司内部MES无缝链接。4,提供yd码!6,OPENCV......
  • 11套QT_c++和C#工业上位机MES编程 全部都是现场应用。 1,C#多工
    11套QT_c++和C#工业上位机MES编程全部都是现场应用。1,C#多工位力位移监控!完整应用,vs2015开发,用到dx控件,我会赠送。这是一个工业应用,下位机为plc。设备启动后上下位机通信完成全自动动作。tcpip扫码,监控曲线,存数据,导数据。2,基于qt5工业生产应用!这是一个汽车部件制造企业的一条......
  • qt5_c++工业上位机自动扫码数据追溯 Qt5之工业应用! 一
    qt5_c++工业上位机自动扫码数据追溯Qt5之工业应用!一套完整工程,链接PLC,工业无人值守自动扫码使用,无线扫码枪SR1000的使用,使用qt5.14,用qtcreator加载工程后,编译,运行,可调试可扩展,目的是学习qt开发方式。Sqlserver存储方式,查询自由。excel方便导出,c++效率无需赘言。ID:6939637937650......
  • Qt_c++上位机2套串口实时曲线带平滑 1,设置串口. 2,串
    Qt_c++上位机2套串口实时曲线带平滑1,设置串口.2,串口收发数据。3,数据模拟。4,接收数据形成曲线。5,曲线控件的各种外观设置。6,可以设置平滑曲线。参数如下:-----------------------------1)编程语言:C++(11或以上);-----------------------------2)编程环境:QT5.14;-----------------......
  • IcsRade.Lot物联网框架C#源码。 该框架自带集成mqtt服务器
    IcsRade.Lot物联网框架C#源码。该框架自带集成mqtt服务器,ModbusRtu及ModbusTCP解析功能。配合DTU网关,完美实现毫秒级时间控制,完美实现非轮询方式远程数据采集及远程控制效果。服务器管理能过WEBAPI或我团队配备的服务器管理软件进行管理。动态增加服务端口以及DTU设备,实现虚拟......
  • QT_C++多线程生产制造MES 1,现场实战项目。 2,这是一个汽车部件制
    QT_C++多线程生产制造MES1,现场实战项目。2,这是一个汽车部件制造企业的一条厂线现场精密控制。3,由本人单独完成。设计技术众多,C++,PLC,OPC,工业以太网(扫码枪),串口扫码枪,多种数据库(多台设备)无缝连接与切换。与该公司内部MES无缝链接。4,提供yd码!不懂的可以随时问卖主哦!工业编程!工业编......