gpt4 book ai didi

c++ - 在 Qt 中如何将单例实例连接到插槽?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:48 24 4
gpt4 key购买 nike

我在 Qt Creator 中编程时遇到了问题。我创建了一个单例类,我试图将它连接到小部件中的一个插槽,但它不接受返回的指针来自 Singleton::getInstance() 作为发出信号的同一实例。

我的代码如下:

class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();

private slots:
void setString(int var);
}

实现:

connect(Singleton::getInstance(),SIGNAL(changeString(int)),this,SLOT(setString(int)));

单例类中的信号:

signals:
void changeString(int var);

在单例类中对信号的调用:

emit(Singleton::getInstance()->changeString(5));

信号发出时什么也不会发生。调试器没有进入插槽。

最佳答案

很可能是插槽的不同方法签名 - setString(IMSS_Status);setString(int);

此外,如果是自定义类型,您应该调用

qRegisterMetaType<IMSS_Status>("IMSS_Status");

将其正确注册到元类型系统。否则,例如,排队槽执行将不起作用。

关于c++ - 在 Qt 中如何将单例实例连接到插槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4067367/

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