これらの変更は、QGroupBox
が変更されるたびに行われる必要があるため、トグルされた信号を提供するため、スロットが接続され、変更が行われます。
docsによると:
チェック可能: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_())
あなたは、各チェックボックスを作成すると、ちょうどこのような行を追加します。 : 'self.GroupBox.toggled.connect(checkbox.setChecked)'。 – ekhumoro