Using itemClicked
signal:
class window(QtGui.QMainWindow):
def __init__(self, parent=None):
super(window, self).__init__(parent)
self.TreeWidget = QtGui.QTreeWidget()
self.TreeWidget.setColumnCount(1)
# self.item1/2/3 = .... save reference to the items
# to access them in the callback (check_status)
item1 = self.item1 = QtGui.QTreeWidgetItem(["Item 1"])
item1.setCheckState(0, QtCore.Qt.Checked)
item2 = self.item2 = QtGui.QTreeWidgetItem(["Item 2"])
item2.setCheckState(0, QtCore.Qt.Unchecked)
item3 = self.item3 = QtGui.QTreeWidgetItem(["Item 3"])
item3.setCheckState(0, QtCore.Qt.Unchecked)
self.TreeWidget.addTopLevelItem(item1)
self.TreeWidget.addTopLevelItem(item2)
self.TreeWidget.addTopLevelItem(item3)
self.setCentralWidget(self.TreeWidget)
# connect the itemClicked signal to the callback check_status.
self.TreeWidget.itemClicked.connect(self.check_status)
def check_status(self):
if self.item1.checkState(0) == QtCore.Qt.Checked:
print('item 1 is checked')
if self.item2.checkState(0) == QtCore.Qt.Checked:
print('item 2 is checked')
if self.item3.checkState(0) == QtCore.Qt.Checked:
print('item 3 is checked')