I have a QTreeWidget with sub-items having a checkbox to select/deselect items.
I'm having issue in extracting the "text" of the sub-items.
How do I get the text? I've tried using item.text() and item.__str__() but failed to get the item text.
Code:
import sys
from PyQt5.QtCore import *
from PyQt5 import QtCore
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.FilterList = QTreeWidget()
self.setCentralWidget(self.FilterList)
self.setWindowTitle("Form")
self.generateData()
def generateData(self):
self.FilterList.setColumnCount(1)
self.FilterList.setHeaderLabels(["Filter Questions"])
DifficultyNode = QTreeWidgetItem(["Difficulty"])
self.FilterList.addTopLevelItem(DifficultyNode)
self.FilterList.itemChanged.connect(self.handleItemChanged)
EasyNode = QTreeWidgetItem(["Easy"])
EasyNode.setCheckState(0, Qt.Unchecked)
NormalNode = QTreeWidgetItem(["Normal"])
NormalNode.setCheckState(0, Qt.Unchecked)
HardNode = QTreeWidgetItem(["Hard"])
HardNode.setCheckState(0, Qt.Unchecked)
DifficultyNode.addChild(EasyNode)
DifficultyNode.addChild(NormalNode)
DifficultyNode.addChild(HardNode)
def handleItemChanged(self, item, column):
if item.checkState(column) == QtCore.Qt.Checked:
print('Item Checked', item) # I want item "text" here
elif item.checkState(column) == QtCore.Qt.Unchecked:
print('Item Unchecked', item) # and here
def main():
app = QApplication(sys.argv)
form = MainWindow()
form.show()
app.exec_()
main()