gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 03:16:34 25 4
gpt4 key购买 nike

我有 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::Connection可以转换为 bool,因此您可以在运行时验证连接是否已按预期创建。

还要验证您是在发出信号的对象与其他实例之间创建连接,否则它将永远无法工作。

关于c++ - 如何将信号连接到 2 个共享库之间的槽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com