Недавно начал изучение Qt, решил написать для более детального изучения что-либо свое, ибо изучать тупо по книжке не интересно, интереснее писать свое, ориентируясь в некоторых местах на книгу (так же когда-то начинал учить делфи, с, с++ =)). Выбор пал на «Сапера», ибо в линухе я сапера не видел. Собственно возник небольшой вопрос - как открыть из приложения дилоговое окно?
Вот у меня есть главный класс, окно которого является главным, в нем некоторые настройки и выбор сложности. При клике на кнопочку должно открыть второе окно, где уже сам сапер, настроенный в зависимости от выбранных параметров. Пока просто это заключается в клине на кнопочку «16 на 16» и открытии сапера 16 на 16 =)
Собственно все написал, все собирается, но при нажатии кнопки ничего не происходит, а в «консоль приложения» пишется
QLayout: Attempting to add QLayout «» to sixteen "", which already has a layout
при нажании на кнопку.
Код класса диалогового окна:
#ifndef SIXTEEN_H
#define SIXTEEN_H
#include <QtGui>
class sixteen : public QDialog
{
Q_OBJECT
public:
sixteen();
};
#endif // SIXTEEN_H
Код обработчика (создание массива кнопочек):
#include <QtGui>
#include "sixteen.h"
sixteen::sixteen() : QDialog()
{
int i,j;
setWindowTitle("Low level - 16x16");
QWidget *wid = new QWidget(this);
QVBoxLayout *mainLay = new QVBoxLayout(this);
QGridLayout *btnLay = new QGridLayout(this);
//Создаем массив кнопочег-полей
QPushButton *massBtn[16][16];
for (i=0;i<16;i++)
{
for (j=0;j<16;j++)
{
massBtn[i][j] = new QPushButton(" ",this);
massBtn[i][j]->setFixedHeight(10);
massBtn[i][j]->setFixedWidth(10);
btnLay->addWidget(massBtn[i][j],i,j);
}
}
//Размещаем все это на форме
mainLay->addLayout(btnLay);
wid->setLayout(mainLay);
}
Обработчик слота нажатия кнопки открытия этого диалога:
void mainWindow::btn1Clicked()
{
sixteen windowSix;
windowSix.show();
}
В чем может быть дело?