Qt でシグナル スロットを作成したところ、作成した接続に関するエラーや警告なしでプログラムが実行されます。問題は、シグナルスロットを使用したい場合、常に NULL を返すことです。
メイン.cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Game* game = new Game;
Scrabble mainWindow;
mainWindow.show();
QObject::connect(&mainWindow,SIGNAL(getTurn()),game,SLOT(giveTurn()));
return a.exec();
}
ゲーム.h
class Game: public QObject
{
Q_OBJECT
public:
Game(QObject *parent = 0);
~Game();
private:
int m_turn;
public slots:
int giveTurn();
};
ゲーム.cpp
Game::Game(QObject *parent)
:QObject(parent)
{
m_turn = 1;
}
Game::~Game()
{
}
int Game::giveTurn()
{
return m_turn;
}
スクラブル.h
class Scrabble : public QMainWindow
{
Q_OBJECT
public:
explicit Scrabble(QWidget *parent = 0);
~Scrabble();
private:
Ui::Scrabble *ui;
signals:
int getTurn();
};
Scrabble.cpp で使用するint turn = emit getTurn();
と、ターンが 1 ではなく 0 になります。誰かが私が間違っていることを知っていますか?