Эти изменения необходимо вносить каждый раз, когда изменяется QGroupBox
, поэтому он обеспечивает переключаемый сигнал, поэтому слот будет подключен и будут внесены изменения.
Согласно документам:
checkable : bool
Это свойство указывает, есть ли в заголовке группового поля флажок.
Если это свойство имеет значение true, поле группы отображает свой заголовок с помощью флажка вместо обычной метки. Если флажок установлен, дочерние элементы группового поля включены; в противном случае они отключены и недоступны.
Из вышеизложенного видно, что дети инвалиды, и это непредвиденная ситуация, но наша задача ее разрешить.
Из всего вышеперечисленного следует сделать следующее:
self.GroupBox.toggled.connect(self.onToggled)
self.GroupBox.setCheckable(True)
def onToggled(self, on):
for box in self.sender().findChildren(QtGui.QCheckBox):
box.setChecked(on)
box.setEnabled(True)
Пример, который реализует вышеизложенное, следующий:
class Widget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.setLayout(QtGui.QVBoxLayout())
self.GroupBox = QtGui.QGroupBox(self)
self.GroupBox.setLayout(QtGui.QVBoxLayout())
for i in range(6):
checkbox = QtGui.QCheckBox("{}".format(i), self.GroupBox)
self.GroupBox.layout().addWidget(checkbox)
self.layout().addWidget(self.GroupBox)
self.GroupBox.toggled.connect(self.onToggled)
self.GroupBox.setCheckable(True)
def onToggled(self, on):
for box in self.sender().findChildren(QtGui.QCheckBox):
box.setChecked(on)
box.setEnabled(True)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
person
eyllanesc
schedule
18.09.2017
self.GroupBox.toggled.connect(checkbox.setChecked)
. - person ekhumoro   schedule 18.09.2017