没有与要连接的调用匹配的成员函数



我在Qt中的C++代码有一个问题。我在我的电脑和Arduino之间进行串行连接。

窗口应通过QLCNumber窗口小部件显示电位计值。我的类包含电位计的int m_valeurPotQLCDNumber *m-afficheValeurPotentiometre(我在构造函数中声明这一点(。

我在我的类中使用Q_Object,我有一行connect(arduino, SIGNAL(readyRead()), this, SLOT(readSerial())),它可以工作,但这行QObject::connect(m_valeurPot, SIGNAL(valueChanged(int)), m_afficheValeurPotentiometre, SLOT(display(int)))不工作。

错误显示

调用"连接"时没有匹配的成员函数

我在这个论坛上读过类似的主题,但答案对我不起作用。

有人能帮我吗?谢谢你的帮助。

如果我理解正确,您正在尝试将slot连接到这里的int信号(但int是一个基元类型-它没有信号或slot(:QObject::connect(m_valeurPot, SIGNAL(valueChanged(int)), m_afficheValeurPotentiometre, SLOT(display(int)))。相反,您应该连接来自对象的信号,该对象是从QObject派生的;将类似valeurPotChanged(int)的信号添加到类中,并将其连接为connect(yourObjectPtr, SIGNAL(valeurPotChanged(int)),...)

基元数据类型不能发出信号!让我们从这个开始。。。

此外,在QT中,您可以将信号发射器和插槽接收器的地址传递给连接宏/函数

这里是:

QObject::connect(m_valeurPot, SIGNAL(valueChanged(int)), m_afficheValeurPotentiometre, SLOT(display(int)))

无效,除非m_valeurPot是指针和QObject

因为你在做类似的事情

m_valeurPot = 0;

我认为这不是指针(事件可能不是QObject…请检查(

如果是QObject,则传递如下地址:

connect(&m_valeurPot, SIGNAL(valueChanged(int)), m_afficheValeurPotentiometre, SLOT(display(int)))

最新更新