如何使用InternalId在PyQt4上的QTreeView中获取文本

时间:2014-05-19 19:16:13

标签: python pyqt4

我是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_())

1 个答案:

答案 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.