Создание изменяющихся диалоговых окон в Qt Creator

Вы наверное уже сталкивались с необходимостью изменять виджеты в окне при определённых действиях пользователя. Это можно сделать и непосредственно кодируя программу при помощи механизма слотов и сигналов qt, но зачем усложнять себе жизнь, если можно воспользоваться прекрасным инструментом разработки — Qt Designer.

Итак откроем Qt Creator и создадим «GUI приложение Qt». Назовём его к примеру «more».. Оставте все настройки по умолчанию… они нам особой роли не сыграют…
Вы должны увидеть вот такое окошко:

В левой колонке — список виджетов, посередине превью окна, а справа свойства выделенного элемента.

Теперь набросаем небольшую «окошку», чтобы было с чем работать. Просто берите и перетаскивайте элементы из списка на форму окна.
Я добавил QGroupBox, QDialogButtonBox, QLabel и QLineEdit вот таким образом:

Теперь продублируем группу элементов. Создадим вторую, ту которая будет скрываться и раскрываться по клику.
Я добавил вторую группу элементов и кнопку «Показать» :

Теперь отредактируем свойства кнопки.

Поставим галочку напротив checkable и checked:

Теперь необходимо связать нажатие кнопки с изменением видимости второй группы объектов. Для этого нажмите Правка — Изменение Сигналов/Слотов или F4. Перетащите курсором стрелку с кнопки на вторую группу элементов, чтобы получилось вот так:

В открывшемся диалоговом окне необходимо связать изменение состояния кнопки (переключателя) с изменением видимости группы:

Выйдете из режима настройки сигналов в режим настройки виджетов (F3).

После проделанных операций откомпилируйте результат. Нижняя группа элементов должна пропадать при «отжатой» кнопке «Показать» и появляться при «нажатой».

Для того, чтобы изменять размер окна, чтобы уменьшать и увеличивать его при появлении/пропадании элементов необходимо изменить режим компановки элементов.. но это уже другая тема…

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий