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