[英]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.