На этом шаге мы рассмотрим пример использования класса, который используется для создания таких компонентов.
Класс QSplitter позволяет изменять размеры добавленных компонентов с помощью мыши, взявшись за границу между компонентами. Иерархия наследования выглядит так:
(QObject, QPaintDevice) - QWidget - QFrame - QSplitter
<Объект> = QSplitter([parent=<Poдитeль>]) <Объект> = QSplitter(<Ориентация>[, parent=<Poдитeль>])
В параметре parent указывается ссылка на родительский компонент. Если параметр не указан или имеет значение None, то компонент будет обладать своим собственным окном.
Параметр <Ориентация> задает ориентацию размещения компонентов. Могут быть заданы атрибуты Horizontal (по горизонтали) или Vertical (по вертикали) класса Qtcore.Qt. Если параметр не указан, то компоненты размещаются по горизонтали. Пример использования класса QSplitter:
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets, QtCore import sys app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() splitter = QtWidgets.QSplitter(QtCore.Qt.Vertical) label1 = QtWidgets.QLabel("Содержимое компонента 1") Iabel2 = QtWidgets.QLabel("Содержимое компонента 2") label1.setFrameStyle(QtWidgets.QFrame.Box | QtWidgets.QFrame.Plain) Iabel2.setFrameStyle(QtWidgets.QFrame.Box | QtWidgets.QFrame.Plain) splitter.addWidget(label1) splitter.addWidget(Iabel2) vbox = QtWidgets.QVBoxLayout() vbox.addWidget(splitter) window.setLayout(vbox) window.show() sys.exit(app.exec_())
Результат работы приложения изображен на рисунке 1.
Рис.1. Возможность изменения размеров компонентов
На следующем шаге мы закончим изучение этого вопроса.