QT学习 -【信号和槽】

条件

  • 继承自Qobject
  • 定义了宏Q_OBJECT

信号和槽

当某个实例化的对象上产生事件时,该实例化对象就会发出特定的信号。
信号的本质就是函数,并且是只需声明,无需实现的函数
以QPushButton为例

  • 标准信号
class Q_WIDGETS_EXPORT QAbstractButton : public QWidget
{
  Q_SIGNALS:
      void pressed();
      void released();
      void clicked(bool checked = false);
      void toggled(bool checked);
}
  • 标准槽
class Q_WIDGETS_EXPORT QAbstractButton : public QWidget
{
public Q_SLOTS:
    // Widget management functions

    virtual void setVisible(bool visible);
    void setHidden(bool hidden);
    void show();
    void hide();

    void showMinimized();
    void showMaximized();
    void showFullScreen();
    void showNormal();

    bool close();
    void raise();
    void lower();
 }
  • 自定义信号
//在自定义类内声名并实现
signals:
    void mySigal();
    void mySigal2(QString& msg);
  • 自定义槽
public slots:
        void mySlot();
        void mySlot2(QString& msg);

信号连接槽

扩展

  • 连接重载的信号和槽
    //有参重载传递
    //指定类型
    void (Commander::*pCommanderGoWithParamter)(QString&) = &Commander::go;
    void (Soldier::*pSoldierFightWithParamter)(QString&) = &Soldier::fight;
    connect(&com, pCommanderGoWithParamter, &sol, pSoldierFightWithParamter);
  • 多个信号、多个槽之间可以相互连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fallsom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值