目前正在使用最新的QT Creator并开发一个小型教程应用程序。想要一个所有功能都可以使用的按钮并将其放在头文件中:
#ifndef GAMEBOARD_H
#define GAMEBOARD_H
#include <QWidget>
#include <QtGui/QPushButton>
class QLCDNumber;
class CannonField;
class QPushButton;
class Gameboard : public QWidget
{
Q_OBJECT
public:
Gameboard(QWidget *parent = 0);
private:
QLCDNumber *remaning_shots;
QLCDNumber *hits;
CannonField *cannon_field;
QPushButton *shootb;
public slots:
void shoot();
void hit();
void missed();
void restart();
};
#endif // GAMEBOARD_H
gameboard.cpp:
#include "cannonfield.h"
#include "gameboard.h"
#include "lcdrange.h"
Gameboard::Gameboard(QWidget *parent)
: QWidget(parent) {
shootb = new QPushButton(tr("Shoot"));
当我试图运行应用程序时,它甚至在它开始之前就崩溃了。我甚至不必使用任何按钮,它无论如何都会崩溃。我做错了什么?
或者我应该只使用信号?
QPushButton *shootb = new QPushButton(tr("Shoot"));
connect(this, SIGNAL(disableShoot(bool)), shootb, SLOT(setDisabled(bool)));
然后我称之为:
void Gameboard::missed() {
emit disableShoot(true);
}
如果这是一个丑陋的解决方案,请纠正我。