QT简单入门实例9【一个信号对应多个槽,多个信号对应一个槽】

前言:

Qt独创的信号槽机制,不仅可以一个信号连接一个槽,而且可以一对多或多对一。

这其中存在两个最基本的问题:

1.一个信号对应多个槽时,槽函数的执行顺序是怎样的???
2.多个信号对应一个槽时,如何在槽函数中判断信号的发出者是谁(来自哪个类的对象)?

下面对这两种情况分别进行验证:

实例演示1:对一个信号对应多个槽时,槽函数的执行顺序怎样的?

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
   
class MainWindow;
}

class MainWindow : public QMainWindow
{
   
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void on_pushButton_clicked();
    void myslot1(QString); //定义私有槽
    void myslot2(QString); //定义私有槽
    void myslot3(QString); //定义私有槽
private:
    Ui::MainWindow *ui;
};

//公有继承自 QObject
class MyClass : public QObject
{
   
    Q_OBJECT //声明宏,为了可以使用信号槽机制
public:
    MyClass(){
   }
    ~MyClass(){
   }
signals:
    void mysignal(QString); //定义信号(信号全部是公有的)
};

#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值