crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QWizard registerField() field()
Гость_Saymon_*
сообщение 18.11.2012, 15:52
Сообщение #1





Гости








    


Здравствуйте, при написании простейшего диалога, наткнулся на проблему. На странице 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"


подскажите, в чем ошибка, заранее спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.4.2024, 5:31