def createNonExclusiveGroup(self):
groupBox = QGroupBox("Non-Exclusive Checkboxes")
groupBox.setFlat(True)
checkBox1 = QCheckBox("&Checkbox 1")
checkBox2 = QCheckBox("C&heckbox 2")
checkBox2.setChecked(True)
tristateBox = QCheckBox("Tri-&state button")
tristateBox.setTristate(True)
tristateBox.setCheckState(Qt.PartiallyChecked)
vbox = QVBoxLayout()
vbox.addWidget(checkBox1)
vbox.addWidget(checkBox2)
vbox.addWidget(tristateBox)
vbox.addStretch(1)
groupBox.setLayout(vbox)
return groupBox
python类PartiallyChecked()的实例源码
def createTopLeftGroupBox(self):
self.topLeftGroupBox = QGroupBox("Group 1")
radioButton1 = QRadioButton("Radio button 1")
radioButton2 = QRadioButton("Radio button 2")
radioButton3 = QRadioButton("Radio button 3")
radioButton1.setChecked(True)
checkBox = QCheckBox("Tri-state check box")
checkBox.setTristate(True)
checkBox.setCheckState(Qt.PartiallyChecked)
layout = QVBoxLayout()
layout.addWidget(radioButton1)
layout.addWidget(radioButton2)
layout.addWidget(radioButton3)
layout.addWidget(checkBox)
layout.addStretch(1)
self.topLeftGroupBox.setLayout(layout)
def createNonExclusiveGroup(self):
groupBox = QGroupBox("Non-Exclusive Checkboxes")
groupBox.setFlat(True)
checkBox1 = QCheckBox("&Checkbox 1")
checkBox2 = QCheckBox("C&heckbox 2")
checkBox2.setChecked(True)
tristateBox = QCheckBox("Tri-&state button")
tristateBox.setTristate(True)
tristateBox.setCheckState(Qt.PartiallyChecked)
vbox = QVBoxLayout()
vbox.addWidget(checkBox1)
vbox.addWidget(checkBox2)
vbox.addWidget(tristateBox)
vbox.addStretch(1)
groupBox.setLayout(vbox)
return groupBox
def createTopLeftGroupBox(self):
self.topLeftGroupBox = QGroupBox("Group 1")
radioButton1 = QRadioButton("Radio button 1")
radioButton2 = QRadioButton("Radio button 2")
radioButton3 = QRadioButton("Radio button 3")
radioButton1.setChecked(True)
checkBox = QCheckBox("Tri-state check box")
checkBox.setTristate(True)
checkBox.setCheckState(Qt.PartiallyChecked)
layout = QVBoxLayout()
layout.addWidget(radioButton1)
layout.addWidget(radioButton2)
layout.addWidget(radioButton3)
layout.addWidget(checkBox)
layout.addStretch(1)
self.topLeftGroupBox.setLayout(layout)
def createNonExclusiveGroup(self):
groupBox = QGroupBox("Non-Exclusive Checkboxes")
groupBox.setFlat(True)
checkBox1 = QCheckBox("&Checkbox 1")
checkBox2 = QCheckBox("C&heckbox 2")
checkBox2.setChecked(True)
tristateBox = QCheckBox("Tri-&state button")
tristateBox.setTristate(True)
tristateBox.setCheckState(Qt.PartiallyChecked)
vbox = QVBoxLayout()
vbox.addWidget(checkBox1)
vbox.addWidget(checkBox2)
vbox.addWidget(tristateBox)
vbox.addStretch(1)
groupBox.setLayout(vbox)
return groupBox
def createTopLeftGroupBox(self):
self.topLeftGroupBox = QGroupBox("Group 1")
radioButton1 = QRadioButton("Radio button 1")
radioButton2 = QRadioButton("Radio button 2")
radioButton3 = QRadioButton("Radio button 3")
radioButton1.setChecked(True)
checkBox = QCheckBox("Tri-state check box")
checkBox.setTristate(True)
checkBox.setCheckState(Qt.PartiallyChecked)
layout = QVBoxLayout()
layout.addWidget(radioButton1)
layout.addWidget(radioButton2)
layout.addWidget(radioButton3)
layout.addWidget(checkBox)
layout.addStretch(1)
self.topLeftGroupBox.setLayout(layout)
def _update_checkboxes(self, item: QTreeWidgetItem, column: int):
if column != 0:
return
new_check_state = item.checkState(0)
self._set_check_state_to_tree(item, new_check_state)
while True:
item = item.parent()
if item is None:
break
has_checked_children = False
has_partially_checked_children = False
has_unchecked_children = False
for i in range(item.childCount()):
state = item.child(i).checkState(0)
if state == Qt.Checked:
has_checked_children = True
elif state == Qt.PartiallyChecked:
has_partially_checked_children = True
else:
has_unchecked_children = True
if not has_partially_checked_children and not has_unchecked_children:
new_state = Qt.Checked
elif has_checked_children or has_partially_checked_children:
new_state = Qt.PartiallyChecked
else:
new_state = Qt.Unchecked
item.setCheckState(0, new_state)
self._update_selection_label()
def group_check_state(self):
if not self.is_group:
return None
if self.childCount() == 0:
return Qt.Unchecked
if all(child.show for child in self.children):
return Qt.Checked
elif any(child.show for child in self.children):
return Qt.PartiallyChecked
else:
return Qt.Unchecked