Добавление виджета в QGroupBox
Я пытаюсь добавить виджет QPushButton в QGroupBox, например:
self.btn = QtGui.QPushButton('Push Button')
self.grp_box = QtGui.QGroupBox('Button Section')
self.grp_box.addWidget(self.btn)
При попытке запустить код я получил эту ошибку: AttributeError: 'NoneType' object has no attribute 'addWidget'
После некоторой онлайн проверки, кажется, что QGroupBox позволяет только setLayout
это означает, что мне нужно будет использовать QVBoxLayout
или же QHBoxLayout
и т.п.
Есть ли способ обойти это, добавив виджет без использования каких-либо макетов? Я использую PyQt.
1 ответ
Сначала создайте свой основной макет = QHBoxLayout()
main_layout = QHBoxLayout()
Затем создайте групповое поле:
group_box = QGroupBox("Group Box")
Создайте макет группового поля:
group_box_layout = QVBoxLayout()
Добавьте виджеты в макет группового поля следующим образом:
group_box_layout.addWidget(QCheckBox("Check Box 1"))
group_box_layout.addWidget(QCheckBox("Check Box 2"))
group_box_layout.addWidget(QCheckBox("Check Box 3"))
Назначьте макет группового поля для группового поля:
group_box.setLayout(group_box_layout)
Привязка группового поля к основному макету:
main_layout.addWidget(group_box)
И добавьте это в конце:
widget = QWidget()
widget.setLayout(layout1)
self.setCentralWidget(widget)