【发布时间】:2016-06-01 05:24:30
【问题描述】:
您好,我是 Qt 和 C++ 的新手。我有一个要求,我必须使用派生类对象访问基类的信号。是否可能,如果是,那么如何?我尝试使用一个简单的应用程序来实现它,但它不起作用。
//基类
//在它的构造函数中发出信号temp()
class IPCBase : public QWidget
{
Q_OBJECT
public:
explicit IPCBase(QWidget *parent = 0);
~IPCBase();
signals:
void temp();
private:
Ui::IPCBase *ui;
};
//cpp
IPCBase::IPCBase(QWidget *parent) :
QWidget(parent),
ui(new Ui::IPCBase)
{
ui->setupUi(this);
qDebug()<<"coming to base cpp";
emit temp();
}
我创建了一个名为 IPCReceiver 的派生类,并使用 IPCReceiver(派生类)的对象我试图在另一个类(Form)中使用连接语句并调用 SLOT。它没有给出编译错误,但 SLOT 是没有被调用。
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
IPCReceiver *receiver = new IPCReceiver;
connect(receiver, SIGNAL(temp()), this, SLOT(debug()));
}
提前致谢。
【问题讨论】:
-
IPCReceiver何时发出temp信号?