Шаг 88.
Библиотека PyQt5.
Размещение компонентов в окнах. Объединение компонентов в группу

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

    Состояние одних компонентов может зависеть от состояния других - например, из нескольких переключателей можно выбрать только один. Кроме того, некоторый набор компонентов может использоваться для ввода связанных данных, например имени, отчества и фамилии пользователя. В этом случае компоненты объединяют в группу.

    Группа компонентов отображается внутри рамки, на верхней границе которой выводится текст заголовка. Реализовать группу позволяет класс QGroupBox. Иерархия наследования выглядит так:

  (QObject, QPaintDevice) - QWidget - QGroupBox

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

  <Объект> = QGroupBox([<Родитель>]) 
  <Объект> = QGroupBox(<Текст>[, <Родитель>])

    В необязательном параметре <Родитель> можно указать ссылку на родительский компонент. Параметр <Текст> задает текст заголовка, который отобразится на верхней границе рамки. Внутри текста заголовка символ &, указанный перед буквой, задает комбинацию клавиш быстрого доступа. В этом случае буква, перед которой указан символ &, будет, в качестве подсказки пользователю, подчеркнута. При одновременном нажатии клавиши Alt и подчеркнутой буквы первый компонент из группы окажется в фокусе ввода.

    После создания экземпляра класса QGroupBox следует добавить компоненты в какой-либо контейнер, а затем передать ссылку на контейнер в метод setLayout() группы.

    Типичный пример использования класса QGroupBox представлен ниже. Созданная им группа показана на рисунке 1.

from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.setWindowTitle("QGroupBox")
window.resize(200, 80)
mainbox = QtWidgets.QVBoxLayout()
radio1 = QtWidgets.QRadioButton("&Да")
radio2 = QtWidgets.QRadioButton("&Нет")
box = QtWidgets.QGroupBox("&Вы знаете язык Python?") # Объект группы
hbox = QtWidgets.QHBoxLayout() # Контейнер для группы
hbox.addWidget(radio1)         # Добавляем компоненты
hbox.addWidget(radio2)
box.setLayout(hbox)            # Передаем ссылку на контейнер
mainbox.addWidget(box)         # Добавляем группу в главный контейнер
window.setLayout(mainbox)      # Передаем ссылку на главный контейнер в окно
radio1.setChecked(True)        # Выбираем первый переключатель
window.show()
sys.exit(app.exec_())
Архив с файлом можно взять здесь.

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


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

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




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