我有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
连接到从QWidget
派生的WidgetClass
的插槽。
WidgetClass::WidgetClass()
: __core(new CoreClass)
{
connect(__core, &CoreClass::aSignal, this, qOverload<>(&QWidget::update));
}
我希望每当__core
发出信号aSignal
时,都会更新widget
,但不是。
========================================================
那是我的错。连接没有问题。我只是错过了调用connect
功能的函数。
您的代码看起来正确,您应该尝试这些事情以确保。
QObject::connect
返回QmetaObject ::连接可以施放到bool
的连接,因此您可以在运行时验证是否按预期创建了连接。
还验证您正在创建发出信号而不是其他实例的对象之间的连接,否则它将永远无法使用。