Qt信号与槽补充 - 在基类函数中发射的信号

本文详细阐述了如何在Qt中处理基类信号与子类槽函数的交互,确保只有特定子类能发射并处理基类的信号。通过将子类指针转换为基类指针,可以实现从基类函数发射信号,并与其他类的槽进行连接,从而在触发信号时执行相应的槽函数。
摘要由CSDN通过智能技术生成

本文章主要介绍如何连接一个继承自基类并且在基类函数中发射的信号, 并且保证只有该子类才会发射这个信号.
其中心思想是: 必须把该子类指针转换为基类指针,然后用该指针调用基类中的函数来触发信号, 或者通过信号槽机制直接把基类信号(放在槽位置)与另一个信号相连. 这样之后连接到该子类(其他子类不行)的槽(属于其他类)就可以收到该基类中的信号, 从而触发槽函数.

函数代码如下:
.h 文件:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
    class MainWindow;
}
class A: public QObject
{
    Q_OBJECT
public:
    void toClear();
signals:
    void clear();
};
class B: public A
{
    Q_OBJECT
};
class C: public A
{
    Q_OBJECT
};
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
public slots:
    void callToClear();
private:
    Ui::MainWindow *ui;
    B *b;
    C *c;
};
#endif // M

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值