![](/img/trans.png)
[英]Error connecting Worker Thread signal with MainWindow slot (Qt5)
[英]Qt Connecting SIGNAL and SLOT in object member of MainWindow
我有一个MyClass类:
- private:
pushButton *button;
void connectSignalAndSlot();
- private slot:
void buttonAction();
我想使用connectSignalAndSlot()在MyClass中连接它们,如下所示:
void MyClass::connectSignalAndSlot()
{
QObject::connect(button,SIGNAL(clicked()),this,SLOT(buttonAction()));
}
这给我一个错误
no matching function for call to 'QObject::connect(QPushButton*&, const char*, MyClass* const, const char*)';
如果我使用MyClass继承了QObject,则程序将编译并启动,但是随后在“应用程序输出”窗格中显示以下问题:
QObject::connect: No such slot QObject::buttonAction() in ..\MyProject\myclass.cpp:48
我是否必须公开按钮和插槽并仅在MainWindow类中使用它们? 没有办法将其保持在MyClass级别吗?
谢谢你的帮助!
必须具有从QObject
继承的MyClass
,并在MyClass
定义(头文件)中添加Q_OBJECT
宏,才能使插槽/信号起作用。
class MyClass : public QObject
{
Q_OBJECT
public:
....
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.