Шаг 84.
Библиотека PyQt5.
Размещение компонентов в окнах. Выравнивание компонентов формы

    На этом шаге мы рассмотрим контейнер, который используется для выполнения указанной операции.

    Класс QFormLayout позволяет выравнивать компоненты формы. Контейнер по умолчанию состоит из двух столбцов: первый предназначен для вывода надписи, а второй - для вывода самого компонента. При этом надпись связывается с компонентом, что позволяет назначать клавиши быстрого доступа, указав символ & перед буквой внутри текста надписи. По нажатию комбинации клавиш быстрого доступа (комбинация Alt+<буква>) в фокусе окажется компонент, расположенный справа от надписи. Иерархия наследования выглядит так:

  (QObject, QLayoutItem) - QLayout - QFormLayout

    Создать экземпляр класса QFormLayout можно следующим образом:

  <Объект> = QFormLayout([<Родитель>])

    В необязательном параметре можно указать ссылку на родительский компонент. Если параметр не указан, то необходимо передать ссылку на контейнер в метод setLayout() родительского компонента.

    Ниже показан код, создающий форму с контейнером QFormLayout. Результат выполнения этого кода можно увидеть на рисунке 1.

# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QFormLayout")
window.resize(300, 150)
lineEdit = QtWidgets.QLineEdit()
textEdit = QtWidgets.QTextEdit()
button1 = QtWidgets.QPushButton("О&тправить")
button2 = QtWidgets.QPushButton("О&чистить")
hbox = QtWidgets.QHBoxLayout()
hbox.addWidget(button1)
hbox.addWidget(button2)
form = QtWidgets.QFormLayout()
form.addRow("&Название:", lineEdit)
form.addRow("&Описание:", textEdit)
form.addRow(hbox)
window.setLayout(form)
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

    Результат работы приложения изображен на рисунке 1.


Рис.1. Пример использования контейнера QFormLayout

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




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