【发布时间】:2019-05-21 12:21:15
【问题描述】:
我有 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 函数。
【问题讨论】:
-
为什么你认为它没有更新?
-
您确定发出了信号吗?尝试将其连接到提供一些调试输出的 lambda。
-
另请注意,调用
QWidget::update不会立即调用QWidget::paintEvent-- 它只是安排重绘/更新。 -
@vahancho 因为当小部件被点击并发出信号时,我在
CoreClass上有一些更新,这必须导致前端更改 -
@G.M.是,我确定。我已经调试了
标签: c++ qt signals-slots