Шаг 26.
Библиотека Qt.
Менеджеры компоновки

    На этом шаге рассмотрим менеджеры компоновки.

    Менеджеры компоновки предоставляют возможности для горизонтального, вертикального и табличного размещения. Они способны управлять размещением не только виджетов, но и встроенных компоновок. Это позволяет конструировать довольно сложные размещения.

    Фундаментом для всей группы менеджеров компоновки является класс QLayout. Это абстрактный класс, унаследованный сразу от двух классов: QObject и QLayoutItem (рис. 1). Этот класс определен в заголовочном файле QLayout.


Рис.1. Иерархия классов менеджеров компоновки

    От класса QLayout унаследованы классы QGridLayout и QBoxLayout (рис. 1).

    Класс QGridLayout управляет табличным размещением, а от QBoxLayout унаследованы два класса QHBoxLayout и QVBoxLayout для горизонтального и вертикального размещения.

    По умолчанию между виджетами остается небольшое расстояние. Это расстояние необходимо для их визуального разделения. Задать его можно с помощью метода setSpacing(), передав в него нужное значение в пикселах.

    Методом setMargin() можно установить отступ виджетов от границы компоновки, обычно типичными значениями могут быть 5 или 10 пикселов. Рис. 2 иллюстрирует смысл этих методов на примере горизонтального размещения.


Рис.2. Размещение виджетов по горизонтали

    При помощи метода addWidget() выполняется добавление виджетов в компоновку, а с помощью метода addLayout() можно добавлять встроенные менеджеры компоновки. Если понадобится удалить какой-либо виджет из компоновки, то следует воспользоваться методом removeWidget(), передав ему указатель на этот виджет.

    Объекты размещений отвечают за правильное размещение виджетов и присвоение им нужных виджетов-предков.

    На следующем шаге рассмотрим горизонтальное и вертикальное размещение.




Предыдущий шаг Содержание Следующий шаг