Resumo : neste tutorial, você aprenderá como usar a QGroupBox
classe PyQt para criar um quadro de caixa de grupo com um título.
Introdução ao widget PyQt QGroupBox
Uma caixa de grupo permite agrupar widgets relacionados em um quadro com um título no topo. Para criar um widget de caixa de grupo, você usa a QWidget
classe:
group_box = QGroupBox(title)
Linguagem de código: Python ( python )
Como uma caixa de grupo não organiza automaticamente os widgets filhos, para adicionar widgets à caixa de grupo, você precisa primeiro criar um objeto de layout:
layout = QVBoxLayout()
Linguagem de código: Python ( python )
defina o layout da caixa de grupo:
group_box.setLayout(layout)
Linguagem de código: Python ( python )
e use o objeto de layout para adicionar os widgets filhos:
layout.addWidget(widget1)
layout.addWidget(widget2)
layout.addWidget(widget3)
Linguagem de código: Python ( python )
Aqui estão as etapas completas para criar uma caixa de grupo e adicionar widgets filhos a ela:
# 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)
Linguagem de código: Python ( python )
Exemplo de widget PyQt QGroupBox
O exemplo a seguir usa a QGroupBox
classe para criar widgets de caixa de grupo:
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())
Linguagem de código: Python ( python )
Saída:
Como funciona.
Primeiro, crie uma caixa de grupo com um título 'Personal Information'
:
person_groupbox = QGroupBox('Personal Information')
Linguagem de código: Python ( python )
A seguir, crie um layout de formulário e defina-o como o layout da caixa de grupo:
form_layout = QFormLayout()
person_groupbox.setLayout(form_layout)
Linguagem de código: Python ( python )
Em seguida, adicione widgets ao layout do formulário da caixa de grupo:
form_layout.addRow('First Name:', QLineEdit(person_groupbox))
form_layout.addRow('Last Name:', QLineEdit(person_groupbox))
form_layout.addRow('DOB:', QDateEdit(person_groupbox))
Linguagem de código: Python ( python )
Depois disso, crie a segunda caixa de grupo:
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))
Linguagem de código: Python ( python )
Finalmente, coloque as caixas de grupo na janela principal:
layout.addWidget(person_groupbox)
layout.addWidget(contact_groupbox)
Linguagem de código: Python ( python )
Resumo
- Use
QGroupBox
a classe PyQt para criar um widget de caixa de grupo.