0

我试图弄清楚为什么这不起作用。我正在尝试将 QWidget 对象信号与 QObject 插槽连接起来。我没有收到任何错误,但它甚至在窗口出现之前就意外完成了。

主文件

#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

小部件.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QHBoxLayout>
#include "gameengine.h"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();
private:
    Ui::Widget *ui;
    QHBoxLayout * layout;
    QPushButton * buttons[10];
    QPushButton * startButton;
    GameEngine * game;
};

#endif // WIDGET_H

小部件.cpp

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent)
{
    layout = new QHBoxLayout(this);
    for (int i = 0; i < 10; i++) {
        buttons[i] = new QPushButton(QString::number(i));
        buttons[i]->setDisabled(true);
        layout->addWidget(buttons[i], 0, Qt::AlignLeft);
    }
    startButton = new QPushButton("New Game");
    layout->addWidget(startButton);

    connect(startButton, SIGNAL(clicked()), game, SLOT(startGame()));

}

我没有粘贴到 GameEngine 类中,因为它只有 startGame() 函数,它还没有包含任何代码。

4

1 回答 1

1

忘记初始化 GameEngine 对象...

于 2015-05-06T18:52:41.603 回答