Qt中信号与槽机制简述

信号与槽(Signal & Slot)

信号与槽是Qt编程的基础也是Qt的一大特色创新。因为有了信号和槽的机制,才使得在处理多个控件操作时更加简单也更加简洁。

信号(Signal)

就是控件被点击之后发出的信号。

槽(Slot)

就是响应信号的函数。

信号与槽的关联是用QObject::connect()函数实现,基本格式为:

QObject::connect(sender,SIGNAL(signal()),this,receiver,SLOT(slot()));

但是connect()是QObject类的静态函数,所以我们在使用时,可以直接写为:

connect(sender,SIGNAL(signal()),this,receiver,SLOT(slot()));

PS:
sender是发送信号的对象,signal()是发射信号的名称,this是在本窗口中实现,receiver是接收信号的对象,slot()是接收信号后进行相应操作的函数名称

关于信号和槽的使用,还需要注意一下规则

1.一个信号可以连接多个槽;
2.多个信号可以连接同一个槽;
3.一个信号可以连接另一个信号;
4.信号的数量不能少于槽的数量,否则会出现错误;
5.使用信号和槽的时候,必须在类的定义中加入宏Q_OBJECT:

class MainWindow : public QMainWindow
{
    Q_OBJECT  //若使用信号和槽,必须加入此宏
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    Ui::MainWindow *ui;
};

6.一个信号被发送时,与其关联的槽函数会立刻执行。只有当信号关联的所有槽函数执行完毕时,才会执行发射信号后面的代码。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值