QT 4: программирование GUI на С++
Шрифт:
Мы
Подобные формы также очень легко создавать при помощи Qt Designer.
1. Создайте новую форму на основе шаблона «Dialog» или «Widget».
2. Добавьте в форму виджеты QListWidget и QStackedWidget.
3. Заполните каждую страницу дочерними виджетами и менеджерами компоновки. (Для создания новой страницы нажмите на правую кнопку мышки и выберите пункт меню Insert Page (вставить страницу); для перехода с одной страницы на другую щелкните по маленькой левой или правой стрелке, расположенной в верхнем правом углу виджета QStackedWidget.)
4. Расположите виджеты рядом, используя менеджер горизонтальной компоновки.
5. Подсоедините сигнал виджета списка элементов currentRowChanged(int) к слоту стекового виджета setCurrentIndex(int).
6. Установите значение свойства виджета списка элементов currentRow на 0.
Поскольку мы реализовали переключение страниц с помощью предварительно определенных сигналов и слотов, диалоговое окно будет правильно работать при предварительном просмотре в Qt Designer.
Разделители
Разделитель QSplitter представляет собой виджет, который содержит другие виджеты. Виджеты в разделителе отделены друг от друга разделительными линиями. Пользователи могут изменять размеры дочерних виджетов разделителя посредством перемещения разделительных линий. Разделители могут часто использоваться в качестве альтернативы менеджерам компоновки, предоставляя
Рис. 6.7. Приложение Splitter.
Дочерние виджеты QSplitter автоматически располагаются рядом (или один под другим) в порядке их создания, причем между соседними виджетами размещаются разделительные линии. Ниже приводится программный код для создания представленного на рис. 6.7 окна:
Этот пример состоит из трех полей редактирования QTextEdit, расположенных горизонтально в виджете QSplitter. В отличие от менеджеров компоновки, которые просто размещают в форме дочерние виджеты, а сами не имеют визуального представления, QSplitter наследует QWidget и может использоваться как любой другой виджет.
Рис. 6.8. Виджеты приложения Splitter.
Можно обеспечить сложную компоновку путем применения вложенных горизонтальных и вертикальных разделителей QSplitter. Например, показанное на рис. 6.9 приложение Mail Client (почтовый клиент) состоит из горизонтального QSplitter, который содержит справа от себя вертикальный QSplitter.
Рис. 6.9. Приложение Mail Client в системе Mac OS X.
Ниже приводится программный код конструктора подкласса QMainWindow приложения Mail Client:
Бастард Императора. Том 13
13. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
Точка Бифуркации IV
4. ТБ
Фантастика:
героическая фантастика
городское фэнтези
попаданцы
рейтинг книги
Глава рода
5. Живой лёд
Фантастика:
боевая фантастика
рейтинг книги
Кодекс Охотника. Книга XIX
19. Кодекс Охотника
Фантастика:
фэнтези
рейтинг книги
Древесный маг Орловского княжества 3
3. Орловское княжество
Фантастика:
аниме
сказочная фантастика
фэнтези
попаданцы
гаремник
рейтинг книги
Лекарь Империи
1. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
рейтинг книги
Пламенев. Книга 3-7
Пламенев
Фантастика:
аниме
уся
фэнтези
сянься
рейтинг книги
Неучтенный элемент. Том 2
2. Антимаг. Вне системы
Фантастика:
городское фэнтези
фэнтези
рейтинг книги
Газлайтер. Том 9
9. История Телепата
Фантастика:
фэнтези
попаданцы
рейтинг книги
Наследник
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
рейтинг книги