Сбой приложения при объявлении QPushButton в заголовке - PullRequest
0 голосов
/ 27 января 2012

В настоящее время используется последняя версия 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);
}

Поправь меня, если это уродливое решение.

...