PyQt QGroupBox в Python с примерами

Класс PyQt QGroupBox используется в Python для создания рамки группового поля с заголовком.

Что такое PyQt QGroupBox

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

group_box = QGroupBox(title)

Поскольку групповой блок не размещает дочерние виджеты автоматически, для добавления виджетов в групповой блок сначала необходимо создать объект макета:

layout = QVBoxLayout()

установите макет для группового поля:

group_box.setLayout(layout)

и используйте объект макета для добавления дочерних виджетов:

layout.addWidget(widget1)
layout.addWidget(widget2)
layout.addWidget(widget3)

Вот полные шаги по созданию группового блока и добавлению в него дочерних виджетов:

# Create a group box
group_box - QGroupBox(title)

# create a layout and set it for the group box
layout = QVBoxLayout()
group_box.setLayout(layout)

# add widgets to the layout
layout.addWidget(widget1)
layout.addWidget(widget2)
layout.addWidget(widget3)

Пример виджета PyQt QGroupBox

В следующем примере класс QGroupBox используется для создания виджетов групповых полей:

import sys
from PyQt6.QtWidgets import QApplication, QWidget,  QFormLayout, QPushButton, QGroupBox, QLineEdit, QDateEdit
from PyQt6.QtCore import Qt


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QGroupBox')

        layout = QFormLayout(self)
        self.setLayout(layout)

        person_groupbox = QGroupBox('Personal Information')
        form_layout = QFormLayout()
        person_groupbox.setLayout(form_layout)

        form_layout.addRow('First Name:', QLineEdit(person_groupbox))
        form_layout.addRow('Last Name:', QLineEdit(person_groupbox))
        form_layout.addRow('DOB:', QDateEdit(person_groupbox))

        contact_groupbox = QGroupBox('Contact Information')
        form_layout = QFormLayout()
        contact_groupbox.setLayout(form_layout)
        form_layout.addRow('Phone Number:', QLineEdit(contact_groupbox))
        form_layout.addRow('Email Address:', QLineEdit(contact_groupbox))

        layout.addWidget(person_groupbox)
        layout.addWidget(contact_groupbox)
        layout.addWidget(QPushButton('Save'))

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec())

Выход:

Пример использования PyQt QGroupBox

Как это работает.

  • Сначала создайте групповой блок с заголовком «Личная информация»:
person_groupbox = QGroupBox('Personal Information')
  • Далее создайте макет формы и установите его в качестве макета группового поля:
form_layout = QFormLayout()
person_groupbox.setLayout(form_layout)
  • Затем добавьте виджеты в макет формы группового поля:
form_layout.addRow('First Name:', QLineEdit(person_groupbox))
form_layout.addRow('Last Name:', QLineEdit(person_groupbox))
form_layout.addRow('DOB:', QDateEdit(person_groupbox))
  • После этого создайте вторую групповую ячейку:
contact_groupbox = QGroupBox('Contact Information')
form_layout = QFormLayout()
contact_groupbox.setLayout(form_layout)
form_layout.addRow('Phone Number:', QLineEdit(contact_groupbox))
form_layout.addRow('Email Address:', QLineEdit(contact_groupbox))
  • Наконец, поместите групповые поля в главное окно:
layout.addWidget(person_groupbox)
layout.addWidget(contact_groupbox)
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *