На этом шаге мы рассмотрим контейнер, который используется для выполнения указанной операции.
Помимо выравнивания компонентов по горизонтали и вертикали, существует возможность размещения компонентов внутри ячеек сетки. Для этого предназначен класс QGridLayout. Иерархия его наследования:
(QObject, QLayoutItem) - QLayout - QGridLayout
Создать экземпляр класса QGridLayout можно следующим образом:
<Объект> = QGridLayout([<Родитель>])
В необязательном параметре можно указать ссылку на родительский компонент. Если параметр не указан, то необходимо передать ссылку на сетку в метод setLayout() родительского компонента. Код, иллюстрирующий типичный пример использования класса QGridLayout, представлен ниже, а результат его выполнения - на рисунке 1.
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() # Родительский компонент - окно window.setWindowTitle("QGridLayout") window.resize(150, 100) button1 = QtWidgets.QPushButton("1") button2 = QtWidgets.QPushButton("2") button3 = QtWidgets.QPushButton("3") button4 = QtWidgets.QPushButton("4") grid = QtWidgets.QGridLayout() # Создаем сетку grid.addWidget(button1, 0, 0) # Добавляем компоненты grid.addWidget(button2, 0, 1) grid.addWidget(button3, 1, 0) grid.addWidget(button4, 1, 1) window.setLayout(grid) # Передаем ссыпку родителю window.show() sys.exit(app.exec_())
Результат работы приложения изображен на рисунке 1.
Рис.1. Контейнер QGridLayout с четырьмя кнопками
На следующем шаге мы закончим изучение этого вопроса.