信号とスロットを接続しようとしています。私はそれを働かせましたが、誤って.hファイルを削除しました。今私はそれを書き直そうとしたが、すべてが地獄になった。私が持っている:Qt - 接続に一致する機能はありませんか?
#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と呼ばれるクラスです。ヘッダにI混乱をやった
error: no matching function for call to 'GameWindow::connect(GameManager*&, const char*, GameWindow* const, const char*)' connect(_gameManager, SIGNAL(gameOverSignal()), this, SLOT(gameOver()));
:今私は2つの接続回線のエラーを取得していますか?私はそれがそれだったようにそれを書き直したと思う...
バージョンコントロールシステムを使用; –
'QObject'から派生しないクラスでスロットとシグナルを使用することはできません。 – rbaleksandar
ありがとう、5分前に分かった:) –