Шаг 95.
Библиотека PyQt5.
Размещение компонентов в окнах. Панели с изменяемым размером

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

    Класс QSplitter позволяет изменять размеры добавленных компонентов с помощью мыши, взявшись за границу между компонентами. Иерархия наследования выглядит так:

  (QObject, QPaintDevice) - QWidget - QFrame - QSplitter
Конструктор класса 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. Возможность изменения размеров компонентов

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




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