Qt - 连接没有匹配功能?

时间:2017-05-11 19:30:33

标签: c++ qt

我正在尝试连接信号和插槽。我有它工作,但我不小心删除了一个.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()));

我在标题中搞砸了什么?我想我已经改写了它,因为它......

1 个答案:

答案 0 :(得分:1)

想出来,我必须使用: public QObject基类。