如何将信号连接到2个共享库之间的插槽



我有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的连接,因此您可以在运行时验证是否按预期创建了连接。

还验证您正在创建发出信号而不是其他实例的对象之间的连接,否则它将永远无法使用。

最新更新