我有2个共享库。我是第一个为特定类实现一些核心组件的人。
class CoreClass : public QObject
{
Q_OBJECT
public:
void doSomeStuff();
signals:
void aSignal();
}
在第二个中,我为该类实现了一些特定于小部件的选项:
class WidgetClass : public QWidget
{
Q_OBECJT
public:
WidgetClass();
private:
CoreClass* __core;
}
现在,我想将CoreClass
的信号连接到WidgetClass
派生的QWidget
的插槽。
WidgetClass::WidgetClass()
: __core(new CoreClass)
{
connect(__core, &CoreClass::aSignal, this, qOverload<>(&QWidget::update));
}
我希望每当widget
发出信号__core
时更新aSignal
,但不会。
====================更新======================= ==
那是我的错。连接没有问题。我只是错过了调用该函数的功能,该函数调用了connect
函数。
答案 0 :(得分:2)
您的代码似乎正确,但是您应该尝试执行以下操作以确保操作
。 QObject::connect
返回一个可以强制转换为bool
的{{3}},因此您可以在运行时验证是否已按预期创建了连接。
还要验证是否正在创建发出信号的对象与其他实例之间的连接,否则它将永远无法工作。