Введение в разработку приложений на платформе Atom/MeeGo. Граничин О.Н - 68 стр.

UptoLike

68
аргумента указатель на родительский QWidget. В случае, если передаётся «0», как в настоящем
примере, виджет создаётся как самостоятельное окно в системе.
Итак, собрав и запустив пример в каталоге lab04/01
, мы обнаружим, что было отображено пустое
окно.
Компоновщики (Layout managers)
Мотивация использования. Следующий пример наглядно демонстрирует потребность в
компоновщиках.
· Попробуйте добавить в корневой виджет в предыдущем примере несколько элементов типов
QPushButton, QLabel, QTextEdit
o включите соответствующие заголовочные файлы, например,
#include <QPushButton>
o создайте объекты, передав в конструкторе указатель на родительский widget
QPushButton but1(&widget)
· Соберите и запустите приложение.
Обратите внимание, что все элементы были помещены в левый верхний угол.
Разумеется, все созданные нами дочерние виджеты, могут быть размещены в необходимых местах
явно, при помощи задания координат и размеров, но такой метод в крайней степени неудобен и
вынудит нас постоянно отслеживать изменения в размере родительского виджета, дабы
перекомпоновать дочерние. Компоновщик, представленный общим классом QLayout, позволяет
избежать этих проблем.
Работа с компоновщиками. Компоновщик отвечает за размещение виджетов в области компоновки в
соответствии с некоторыми правилами компоновки. Изменение размеров области компоновки
приводит обычно к перекомпоновке.
Рассмотрим виды простейших компоновщиков.
· QHBoxLayout, QVBoxLayout — размещает элементы в один ряд
(вертикальный либо горизонтальный)
· QGridLayout размещает элементы в ячейки таблицы
Рис. 6.4.1.
Рис. 6.4.2.
· QFormLayout — размещает элементы сверху вниз в две колонки. Такая организация интерфейса
часто используется при заполнении различных форм, где одна колонкаописание, а другая
поле ввода)
Рис. 6.4.3.