我是Python粉丝和新手。我发现当我使用InternalPointer时,在QTreeView中获取文本(item)会发生崩溃,所以我在google上搜索解决方法,我发现了InternalId,但它返回int,但是我想用它来获取文本,呃我不是知道如何使用它。 我折腾了很长时间,但真的不明白,所以我想请你帮我解决这个问题。 希望简单易懂:) 非常感谢你!
import sys
from PyQt4 import QtCore, QtGui
from PyQt4.Qt import *
class TreeView(QtGui.QTreeView):
def __init__(self, parent=None):
super(TreeView, self).__init__(parent)
self.connect(self, SIGNAL("clicked(QModelIndex)"), self.getCurrentIndex)
def getCurrentIndex(self, index):
# Use 'InternalId' obtain the corresponding text, not int and hoping to simple.
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
model = QtGui.QDirModel()
tree = TreeView()
tree.setModel(model)
tree.setWindowTitle(tree.tr("Dir View"))
tree.resize(640, 480)
tree.show()
sys.exit(app.exec_())
答案 0 :(得分:1)
您可以使用data method获取文字
此外,您可能更喜欢使用新型连接信号槽docs
class TreeView(QtGui.QTreeView):
def __init__(self, parent=None):
super(TreeView, self).__init__(parent)
self.clicked.connect(self.getCurrentIndex)
# self.connect(self, SIGNAL("clicked(QModelIndex)"), self.getCurrentIndex)
def getCurrentIndex(self, index):
print(index.data())
# Use 'InternalId' obtain the corresponding text, not int and hoping to simple.