crossplatform.ru

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

> QWizard, динамическое построение списка страниц
FladeX
  опции профиля:
сообщение 10.3.2009, 23:49
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 67
Регистрация: 20.2.2009
Пользователь №: 564

Спасибо сказали: 0 раз(а)




Репутация:   0  


При помощи QWizard создана программа - набор страниц, связанных "назад"/"далее" кнопками.
Задача - при помощи чекбоксов, выводимых на первой странице, выводить или не выводить последующие страницы. Как это реализовать?

Т.е. на первой странице чекбоксы "страница 2", "страница 3", "страница 4". Если мы отмечаем "страница 2" и "страница 4", то по нажатию "далее" будет показана страница 2, а затем 4, то есть страница 3 будет пропущена.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
FladeX
  опции профиля:
сообщение 19.3.2009, 15:55
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 67
Регистрация: 20.2.2009
Пользователь №: 564

Спасибо сказали: 0 раз(а)




Репутация:   0  


На основе этого примера сделал визард. Но отличие в том, что на первой странице список чекбоксов, которые и определяют, какие страницы будут показаны, а какие нет. Собственно проблема в том, что кроме первой страницы я не могу ничего изменить...

Итак, есть класс:
код класса
class ExpertSystem : public QWizard
{
    Q_OBJECT

public:
    enum
    {
        Page_Intro,
        Page_Func01,
        // ...
        Page_Func27,
        Page_Outro
    };

    ExpertSystem(QWidget *parent = 0);

private slots:
    void showHelp();
};

Есть первая страница с чекбоксами:
первая страница
class IntroPage : public QWizardPage
{
    Q_OBJECT

public:
    IntroPage(QWidget *parent = 0);

    int nextId() const;
    int IDValue;

//private:
public:
    QCheckBox *func01;
    QCheckBox *func02;
    //..
    QCheckBox *func26;
    QCheckBox *func27;
};

Enum с страницами связан так:
конструктор
ExpertSystem::ExpertSystem(QWidget *parent)
    : QWizard(parent)
{
    setPage(Page_Intro, new IntroPage);
    setPage(Page_Func01, new Func01Page);
    setPage(Page_Func02, new Func02Page);
    //..
    setPage(Page_Func27, new Func27Page);
    setPage(Page_Outro, new OutroPage);

    setStartId(Page_Intro);
}

Как теперь изменить значение int nextId() const к примеру для Page_Func27 ? Изменять отсюда (ибо чекбоксы только на первой странице):
int IntroPage::nextId() const
{


Сообщение отредактировал FladeX - 19.3.2009, 15:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- FladeX   QWizard   10.3.2009, 23:49
- - FladeX   Какие-нибудь идеи есть?   13.3.2009, 15:37
- - SABROG   Такая есть идея http://doc.trolltech.com/4.5/qwiza...   13.3.2009, 16:23
- - FladeX   Теперь такой вопрос - как из первого листа назначи...   17.3.2009, 17:25
- - FladeX   class ExpertSystem : public QWizard { Q_OBJEC...   19.3.2009, 15:24
|- - AD   ExpertsSystem:: Page_Intro В данном случа...   19.3.2009, 15:40
- - kwisp   Цитата(FladeX @ 19.3.2009, 15:24) Так и н...   19.3.2009, 15:42
- - FladeX   На основе этого примера сделал визард. Но отличие ...   19.3.2009, 15:55
- - FladeX   Ну подскажите же эту строчку)   20.3.2009, 20:47
- - kwisp   FladeX, по аналогии действуй Раскрывающийся текст...   21.3.2009, 10:04
- - FladeX   Уже что-то, спасибо! Допустим есть конструкция...   21.3.2009, 14:22
- - Litkevich Yuriy   Цитата(FladeX @ 21.3.2009, 17:22) узнать ...   21.3.2009, 19:13
- - FladeX   Спасибо, вроде именно то что надо. Только вот не к...   21.3.2009, 21:57
- - Litkevich Yuriy   Цитата(FladeX @ 22.3.2009, 0:57) Это что ...   21.3.2009, 22:16
- - kalombo   Вклинюсь сюда тоже со своим вопросом, надеюсь нико...   22.3.2009, 10:13
- - SABROG   Полагаю, что одним из этих методов: QTableWidget ...   22.3.2009, 11:32
- - FladeX   То есть для чекбоксов получается так: setDefaultP...   25.3.2009, 13:07
- - SABROG   Цитата(FladeX @ 25.3.2009, 13:07) field(i...   25.3.2009, 15:00
- - FladeX   То есть получается что для чекбоксов registerField...   3.4.2009, 16:05
- - FladeX   Подскажите что можно сделать с чекбоксами На перв...   14.5.2009, 11:07
|- - SABROG   Цитата(FladeX @ 14.5.2009, 12:07) Подскаж...   14.5.2009, 12:13
- - Kagami   Что-то все коллективно тупят ЦитатаThe QCheckBox ...   14.5.2009, 11:57
- - FladeX   Kagami, и тем не менее, через registerFields у мен...   14.5.2009, 13:27
- - Kagami   В конструкторе страницы делаем: registerField...   14.5.2009, 14:06
- - FladeX   Да, теперь все работает. Благодарю! Еще хочу ...   18.5.2009, 14:30
- - Kagami   Немного подробностей реализации бы не помешало   18.5.2009, 20:05
- - FladeX   cppFunc09Page::Func09Page(QWidget *par...   19.5.2009, 11:03
- - Kagami   Ну.. все очень просто. В данном случае надо подклю...   19.5.2009, 11:37
- - Гость   посмотрите пожалуйста мою тему, аналогичная ситуац...   24.11.2012, 17:12


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


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




RSS Текстовая версия Сейчас: 9.1.2025, 19:02