繁体   English   中英

Qt-没有匹配的连接功能?

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM