Добавление виджета в 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)
Другие вопросы по тегам