隔了很久又开始学习编程,这次遇到的问题是用PyQt5写的小工具,需要点击树形控件TreeView的节点,并获取到该节点的数据,TreeView的clicked信号会传递一个参数modelIndex,其中包括坐标和父节点信息,通过row(),column(),parent()三个函数可以获取到信息。想要获得所点击的节点信息,只要用model.itemData(modelIndex)就可以了
当时我用了及其繁琐的方式,先通过递归判断modelIndex的父级的row是否等于-1,等于-1就用model.item(modelIndex.row(),modelIndex.column())获取节点,不等于-1就用model.child(modelIndex.row(),modelIndex.column())。
从公司下班回家后才想到,既然modelIndex包含了坐标和父级modelIndex,那直接通过modelIndex就应该可以得到所在节点数据,不可能像前面这么麻烦。回家头脑清醒以后就找到最直接的解决方式。