На этом шаге мы рассмотрим класс, который используется для создания указанной конструкции.
Класс QToolBox позволяет создать компонент с несколькими вкладками. Изначально отображается содержимое только одной вкладки, а у остальных доступны лишь заголовки. После щелчка мышью на заголовке вкладки она открывается, а остальные сворачиваются. Иерархия наследования выглядит так:
(QObject, QPaintDevice) - QWidget - QFrame - QToolBox
Конструктор класса QToolBox имеет следующий формат:
<Объект> = QToolBox([parent = <Родитель>][, flags = <Тип окна>])
В параметре parent указывается ссылка на родительский компонент. Если параметр не указан или имеет значение None, то компонент будет обладать своим собственным окном. В параметре flags может быть указан тип окна.
Пример кода, создающего компонент класса QToolBox, представлен ниже. Созданный им "аккордеон" показан на рисунке 1.
# -*- coding: utf-8 -*- from PyQt5 import QtWidgets import sys app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() window.setWindowTitle("QToolBox") window.resize(200, 100) toolBox = QtWidgets.QToolBox() toolBox.addItem(QtWidgets.QLabel("Содержимое вкладки 1"), "Вкладка &1") toolBox.addItem(QtWidgets.QLabel("Содержимое вкладки 2"), "Вкладка &2") toolBox.addItem(QtWidgets.QLabel("Содержимое вкладки 3"), "Вкладка &3") toolBox.setCurrentIndex(0) vbox = QtWidgets.QVBoxLayout() vbox.addWidget(toolBox) window.setLayout(vbox) window.show() sys.exit(app.exec_())
Результат работы приложения изображен на рисунке 1.
Рис.1. Пример использования класса QToolBox
На следующем шаге мы закончим изучение этого вопроса.