Здравствуйте, при написании простейшего диалога, наткнулся на проблему. На странице InputPage имеется SpinBox, на следующей странице (InputPage2)
в цикле создаются элементы, от 0 до значения этого самого спинбокса. Зарегистрировал поле спинбокса (registerField()), а с помощью field() выцепить это значение в след. странице не удается.
Диалог устроен таким образом.
#include <QApplication>
#include <iostream>
#include <QFont>
#include <QPushButton>
#include <QWidget>
#include <qlabel.h>
#include <QBoxLayout>
#include <QSpinBox>
#include <QWizard>
#include <QWizardPage>
#include <qicon.h>
#include <QBoxLayout>
#include <QLineEdit>
#include <QString>
class ClassWizard : public QWizard
{
Q_OBJECT
public:
ClassWizard(QWidget *parent = 0);
};
class IntroPage : public QWizardPage
{
Q_OBJECT
public:
IntroPage(QWidget *parent = 0);
private:
};
class InputPage : public QWizardPage
{
Q_OBJECT
public:
InputPage(QWidget *parent = 0);
QSpinBox *Num;
};
class InputPage2 : public QWizardPage
{
Q_OBJECT
public:
InputPage2(QWidget *parent = 0);
int SpinValue;
private:
};
IntroPage::IntroPage(QWidget *parent)
: QWizardPage(parent)
{
this->setTitle("Introduction");
QLabel *label = new QLabel("Introduction");
label->setWordWrap(true);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label);
this->setLayout(layout);
}
InputPage::InputPage(QWidget *parent)
{
this->setTitle("InputPage");
QLabel *label = new QLabel("Enter the number of elements");
label->setWordWrap(true);
Num = new QSpinBox();
Num->setMaximum(9);
Num->setValue(9);
Num->setFont(QFont("Decorative", 25, QFont::Black));
registerField("SpinValue", Num);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(Num);
this->setLayout(layout);
}
InputPage2::InputPage2(QWidget *parent)
{
SpinValue = field("SpinValue").toInt();
QString s[10];
s[1] = "Orange";
s[9] = "Black";
s[5] = "Blue";
s[3] = "Green";
s[4] = "LightBlue";
s[0] = "Red";
s[2] = "Yellow";
s[6] = "Violet";
s[8] = "Purple";
s[7] = "White";
QWizardPage *page = new QWizardPage;
this->setTitle("Names and Colors");
QLabel *label = new QLabel("Set the name and color of each element");
label->setWordWrap(true);
QBoxLayout *layout1 = new QBoxLayout(QBoxLayout::TopToBottom);
layout1->addWidget(label);
for (int i = 0; i < SpinValue; i++){
QBoxLayout *layout = new QBoxLayout(QBoxLayout::LeftToRight);
QPushButton *Color = new QPushButton(QIcon(":/Diagrams/Resources/"+s[i]+".jpg"), "");
QLineEdit *Line = new QLineEdit();
layout->addWidget(Color);
layout->addWidget(Line);
layout1->addLayout(layout);
}
this->setLayout(layout1);
}
ClassWizard::ClassWizard(QWidget *parent)
: QWizard(parent)
{
addPage(new IntroPage);
addPage(new InputPage);
addPage(new InputPage2);
setWindowTitle("Diagrams HD 1.0");
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ClassWizard wizard;
wizard.show();
return app.exec();
}
#include "main.moc"
подскажите, в чем ошибка, заранее спасибо.