[英]Qt - No matching function for connect?
我正在尝试连接信号和插槽。 我可以使用它,但是我不小心删除了.h文件。 现在,我试图重写它,一切都变得地狱了。 我有:
#ifndef GAMEMANAGER_H
#define GAMEMANAGER_H
#include "gamepersistence.h"
class GameManager
{
Q_OBJECT
public:
GameManager();
~GameManager();
GamePersistence* _gamePersistece;
// other stuff
signals:
void refreshPlease();
void gameOverSignal();
};
#endif // GAMEMANAGER_H
然后我尝试将其连接到另一个类中:
GameWindow::GameWindow(QWidget *parent)
: QWidget(parent)
{
setFixedSize(900,200);
setWindowTitle(trUtf8("Amőba"));
//this->setStyleSheet("background-color: white;");
_gameManager = new GameManager();
// _gameManager->setFocusPolicy(Qt::StrongFocus);
connect(_gameManager, SIGNAL(gameOverSignal()), this, SLOT(gameOver()));
connect(_gameManager, SIGNAL(refreshPlease()), this, SLOT(refreshTable()));
//other stuff
}
这是在称为GameWindow的类中。 现在,两条连接线出现错误:
error: no matching function for call to 'GameWindow::connect(GameManager*&, const char*, GameWindow* const, const char*)' connect(_gameManager, SIGNAL(gameOverSignal()), this, SLOT(gameOver()));
我在标题中弄了什么? 我想我已经照原样重写了...
弄清楚了,我必须使用: public QObject
基类。
在gamemanager.h中,添加来自QObject的公共继承以调用信号和插槽。
class GameManager : public QObject{ //your class definition };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.