Шаг 85.
Библиотека PyQt5.
Размещение компонентов в окнах. Выравнивание компонентов формы (окончание)
На этом шаге мы рассмотрим методы, используемые для изменения содержимого контейнера.
Класс QFormLayout поддерживает следующие методы (здесь приведены только основные - полный их список можно найти на странице https://doc.qt.io/qt-5/qformlayout.html):
- addRow () - добавляет строку в конец контейнера. Форматы метода:
addRow (<Текст надписи>, <Компонент> | <Контейнер>)
addRow (<QLabe1>, <Компонент> | <Контейнер>)
addRow (<Компонент> | <Компонент>)
Первый формат позволяет задать текст надписи, которая будет помещена в первую колонку формы, и компонент или контейнер, помещаемый во вторую колонку. В тексте надписи можно указать
символ &, который пометит клавишу быстрого доступа для этого компонента (контейнера). Второй формат использует в качестве надписи компонент класса QLabel (он представляет надпись) -
в этом случае связь с компонентом (контейнером) необходимо устанавливать вручную, передав ссылку на него в метод setBuddy(). Третий формат заставляет компонент (контейнер) занять сразу обе колонки формы;
- insertRow () - добавляет строку в указанную позицию контейнера. Если в первом параметре задано отрицательное значение, то компонент добавляется в конец контейнера. Форматы метода:
insertRow (<Индекс>, <Текст надписи>, <Компонент> | <Контейнер>)
insertRow (<Индекс>, <QLabel>, <Компонент> | <Контейнер>)
insertRow (<Индекс>, <Компонент> | <Контейнер>)
- setFormAlignment (<Режим>) - задает режим выравнивания формы. Допустимые значения мы рассматривали на 81 шаге. Пример:
form.setFormAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignBottom)
- setLabelAlignment (<Режим>) - задает режим выравнивания надписи. Допустимые значения мы рассматривали на 81 шаге. Пример выравнивания по правому краю:
form. setLabelAlignment(QtCore.Qt.AlignRight)
- setRowWrapPolicy (<Режим>) - задает местоположение надписей. В качестве параметра указываются следующие атрибуты класса QFormLayout:
- DontWrapRows (или 0) - надписи расположены слева от компонентов;
- WrapLongRows (или 1) - длинные надписи могут находиться выше компонентов, а короткие надписи - слева от компонентов;
- WrapAllRows (или 2) - надписи всегда расположены выше компонентов;
- setFieldGrowthPolicy (<Режим>) - задает режим управления размерами компонентов. В качестве параметра указываются следующие атрибуты класса QFormLayout:
- FieldsStayAtSizeHint (или 0) - компоненты всегда будут принимать рекомендуемые (возвращаемые методом sizeHint()) размеры;
- ExpandingFieldsGrow (или 1) - компоненты, для которых установлена политика изменения размеров QSizePolicy.Expanding или QSizePolicy.MinimumExpanding, займут
всю доступную ширину. Размеры остальных компонентов всегда будут соответствовать рекомендуемым;
- AllNonFixedFieidsGrow (или 2) - все компоненты (если это возможно) займут всю доступную ширину;
- setContentsMargins () - задает величины отступов от границ сетки до компонентов. Форматы метода:
setContentsMargins (<Слева>, <Сверху>, <Справа>, <Снизу>)
setContentsMargins (<QMargins>)
- setSpacing (<Значение>) - задает расстояние между компонентами по горизонтали и вертикали;
- setHorizontalspacing (<Значение>) - задает расстояние между компонентами по горизонтали;
- setVerticalSpacing (<Значение>) - задает расстояние между компонентами по вертикали.
Для удаления и замены компонентов следует пользоваться методами removeWidget() и replaceWidget(), описанными на 81 шаге.
На следующем шаге мы рассмотрим классы QStackedLayout и QStackedWidget.
Предыдущий шаг
Содержание
Следующий шаг