QT信号与槽

一、概要

        1. 信号 (Signals):是由对象在特定事件发生时发出的消息。如点击等操作。
        2. 槽 (Slots):是用来响应信号的方法。
        3. 连接信号和槽:使用 QObject::connect() 方法将信号连接到槽。

二、信号与槽的构建方法

1)UI界面

        注:此方法适用性有限,仅含有部分QT继承的基础功能,例如关闭等,如需更复杂的功能需要自己构造槽函数。

方式1:信号与槽编辑器,点击加号后,依次选择 发送者、信号、接收者、槽

方式2:界面拖动式连接

1.发送信号的组件

2.点击信号与槽

3.将鼠标移至发送者,长按鼠标拖动箭头到接收者

4、选择槽函数并确认

2)构造槽函数

1.前言——所需的操作文件

注:头文件里主要负责槽函数的声明、#include各种包等

 注:widget.cpp文件里主要负责槽函数的构建

2.四种信号与槽的方法 

方法一:联合UI

注:此方法无需在头文件中声明槽函数

①右键发送者转到槽

②选择信号会自动跳转到槽函数,自行编辑所需功能即可

其他方法:


    //方法二 QObject::connect(sender,SIGNAL(signal()),receiver, SLOT(slot()));
    QObject::connect(ui->pushButton_save,SIGNAL(click()),this,SLOT(save_btn()));


   //方法三 lambda表达式 QObject::connect(sender,&Sender::signal, [=]() { /* lambda body */ });

    QObject::connect(ui->pushButton_save,QPushButton::clicked,[=](){
               std::cout<<"保存"<<std::endl;
    });

    //方法四 指针 QObject::connect(sender, &Sender::signal, receiver,&Receiver::slot);  QObject::connect(ui>pushButton_save,&QPushButton::clicked,this,&Widget::save_btn);

三、自定义信号与槽 

注:不仅要在头文件中声明槽函数还要声明信号,并通过emit触发信号

1.头函数 

2) widget.cpp

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值