Изменяющиеся диалоговые окна

Нами были рассмотрены способы формирования диалоговых окон, которые всегда содержат одни и те же виджеты. В некоторых случаях требуется иметь диало­говые окна, форма которых может меняться. Наиболее известны два типа изменяю­щихся диалоговых окон: расширяемые диалоговые окна (are extension dialogs) и мно­гостраничные диалоговые окна (multi-page dialogs). Оба типа диалоговых окон можно реализовать в Qt либо с помощью непосредственного кодирования, либо посред­ством применения Qt Designer.

Расширяемые диалоговые окна, как правило, имеют обычное (нерасширенное) представление и содержат кнопку для переключения между обычным и расширен­ным представлениями этого диалогового окна. Расширяемые диалоговые окна обыч­но применяются в тех приложениях, которые предназначаются как для неопытных, так и для опытных пользователей и скрывают дополнительные опции до тех пор, по­ка пользователь явным образом не захочет ими воспользоваться. В данном разделе мы используем Qt Designer для создания расширяемого диалогового окна, показан­ного на рис. 2.10.



Рис. 2.10. Обычный и расширенный виды окна сортировки данных

Данное диалоговое окно является окном сортировки в приложении Электрон­ная таблица, позволяющим пользователю задавать один или несколько столбцов сортировки. В обычном представлении этого окна пользователь может ввести один ключ сортировки, а в расширенном представлении он может ввести дополнительно еще два ключа сортировки. Кнопка More (больше) позволяет пользователю пере* ключаться с обычного представления на расширенное и наоборот.

Мы создадим в Qt Designer расширенное представление виджета, второй и тре­тий ключи сортировки которого не будут видны при выполнении программы, когда они не нужны. Этот виджет кажется сложным, однако он очень легко строится в Qt Designer. Сначала нужно создать ту часть, которая относится к первичному ключу, затем сдублировать ее дважды, получая вторичный и третичный ключи.

1. Выберите функцию меню File|New Form и затем шаблон «Dialog with Buttons Right* (диалог с кнопками, расположенными справа).

2. Создайте кнопку More (больше) и перенесите ее в вертикальный менеджер ком­поновки ниже вертикальной распорки. Установите свойство text кнопки More на значение «&Моге», а свойство checkable - на значение «true». Задайте свойст­во default кнопки ОК на значение «true».


<< назад вперед >>