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