Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ qwizard

Автор: basya 25.1.2010, 10:09

добрый день) помогите, пожалуйста, решить проблему: с помощью qwizard надо создать диалог с пользователем. Еще в самом начале есть страница с выбором:
1) создать анкету1;
2) создать анкету2.
И в зависимости от выбора дальше идут разные страницы. Пока что реализовано в тупую: с помощью nextId переходим на нужную страницу. Этот вариант решения работает, но не нравится по двум причинам:
1) создаются все страницы, даже если в дальнейшем мы на них переходить не будем.
2) анкета1 очень похожа на анкету2, но тем не менее они отличаются (хотя по большей части отличия мелкие)... показалось глупо описывать каждую по отдельности, поэтому их было решено сделать наследниками, где в родителе - все, что есть у каждой анкеты, а у "ребенка"- его собственное.. но так теперь немного запутанно получилось... подскажите начинающему в этом деле как правильнее всего сделать.Заранее благодарю)

Автор: vadim303 25.1.2010, 11:15

Посмотри пример в документации http://qt.nokia.com/doc/4.6/dialogs-extension.html. Там с помощью кнопки more делают невидимой часть диалога. В твоём случае переключателем будет выбор на предыдущей странице. Обе анкеты делай на одной странице, а по этому переключателю делай видимыми или невидимыми различающиеся части.

Автор: basya 25.1.2010, 11:36

в таком случае разве будет не тоже самое, если, например, не заморачиваться с видимой\невидимой частью и сделать так: на странице выбора анкеты запоминаем в глобальную переменную choice наш выбор. Далее переходим на следующую страницу и смотрим:
if (choice == "anketa1")
{выводим анкету1}
else {выводим анкету2}

Но правильно ли так делать? т.е. работать то точно будет,но это будет такой некрасивый код...хотелось бы сразу учиться как надо..

Автор: vadim303 25.1.2010, 11:53

Трудно сказать как правильнее сделать. Всё зависит от структуры данных и степени их различия. Я предложил вариант, подходящий, на мой взгляд, в случае незначительности различий между наборами данных 1-го и 2-го вариантов. А уж вам решать что будет лучше - две разных статических страницы делать или одну общую но динамически изменяющуюся. А может и ещё кто варианты какие предложит...

Автор: basya 25.1.2010, 12:01

данные отличаются процентов так на 80... ищу варианты, как лучше сделать, но вот кроме этого пока ничего нового (
неужели никто не сталкивался с таким?

Автор: Litkevich Yuriy 25.1.2010, 13:18

basya, смотри Ежеквартальник Qt, там есть http://www.wiki.crossplatform.ru/index.php/The_Wizard_Magically_Reappears, возможно тебе пригодится.

П.С. частично переведён

Автор: basya 26.1.2010, 12:06

спасибо) к сожалению, не совсем то,что хотелось бы..(

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)