Не могу никак разобраться с появлением диалогового окна в главном окне. Помогите, пожалуйста, разобраться. Вот сам код:
createdialog.h
#ifndef CREATEDIALOG_H
#define CREATEDIALOG_H
#include <QDialog.h>
#include "mainwindow.h"
class CreateDialog : public QDialog //, public MainWindow
{
Q_OBJECT; // Макрос Q_0BJECT необходимо задавать в начале определения любого класса, содержащего сигналы или слоты.
private slots:
void okPush();
void sph4();
void sph5();
private:
QLabel *info;
QRadioButton *sph4Button;
QRadioButton *sph5Button;
QPushButton *okButton;
QPushButton *cancelButton;
public:
CreateDialog(QWidget *parent=0); // !здесь происходит ошибка!
};
#endif
createdialog.cpp
#include <QtGui>
#include "mainwindow.h"
#include "createdialog.h"
#include "point3D.h"
static int iteration=4;
CreateDialog::CreateDialog(QWidget *parent) : QDialog(parent)
{
QTextCodec *codec = QTextCodec::codecForName("CP1251"); // подключаю текстовые кодеки
QTextCodec::setCodecForTr(codec);
this->setWindowTitle(tr("Создать карту...")); // название
this->setModal(true); // модальное окно
info = new QLabel(tr("Выберете, пожалуйста, детализацию карты:"), this);
sph4Button = new QRadioButton(tr("Низкая"), this);
sph5Button = new QRadioButton(tr("Средняя"), this);
sph4Button->setChecked(true);
connect(sph4Button, SIGNAL(clicked()), this, SLOT(sph4()));
connect(sph5Button, SIGNAL(clicked()), this, SLOT(sph5()));
okButton = new QPushButton(tr("Ok"));
cancelButton = new QPushButton(tr("Отмена"));
connect(okButton, SIGNAL(clicked()), this, SLOT(okPush()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(close()));
QVBoxLayout *layout1 = new QVBoxLayout;
QVBoxLayout *layout2 = new QVBoxLayout;
QHBoxLayout *layout3 = new QHBoxLayout;
layout2->addWidget(info);
layout2->addWidget(sph4Button);
layout2->addWidget(sph5Button);
layout3->addWidget(okButton);
layout3->addWidget(cancelButton);
layout1->addLayout(layout2);
layout1->addLayout(layout3);
setLayout(layout1); // устанавливает менеджер компоновки для окна
setFixedHeight(sizeHint().height()); // возвращает "идеальный" размер виджета
this->show();
}
void CreateDialog::okPush() {set_temp(iteration); this->close();}
void CreateDialog::sph4() {iteration=4;}
void CreateDialog::sph5() {iteration=5;}
В главном окне Диалог вызывается соответственно:
CreateDialog *create_dialog = new CreateDialog;
При компиляции выдается сообщение:
macro "CreateDialogW" requires 4 arguments, but only 1 given
макрос "CreateDialogW" требует 4 аргумента, но дан только 1
Выдается ошибка в файле createdialog.h в конструкторе
CreateDialog(QWidget *parent=0); // !здесь происходит ошибка!
declaration does not declare anything
декларация ничего не декларирует
Бью голову, не понимаю в чем дело...