如何使用双击事件获取 pyqt qtreeview 项目子项?

how to get the pyqt qtreeview item child using double click event?

我正在使用 PyQt4 和 python 2.7.9。我有一个包含来自 Oracle 数据库的数据的 QTreeView。代码是这样的:

model = QStandardItemModel(0,1)
self.treeMedia.setModel(model)
for rowalb in self.SELECT_TREE_ALBUM(codus):
    nodeItem = QStandardItem(str(rowalb[1]).decode('utf-8'))
    for rowph in self.SELECT_TREE_PHOTO(int(rowalb[0])):
        childItem = QStandardItem(str(rowph[0]))
        childItem.setEditable(False)
        nodeItem.insertRows(0, [childItem])
    nodeItem.setEditable(False)
    model.appendRow(nodeItem)
model.setHorizontalHeaderLabels(['Data'])

SELECT_TREE_ALBUM(codus是相册所有者的id)和SELECT_TREE_PHOTO是return来自database.The rowalb 1的数据的功能相册名称,rowalb[0]为ID,rowalb[0]用于获取此album.The图片显示此视图:

我想使用双击事件获取 childItem 数据(例如 1491475964461012、1491475821127693、1491475631127712、1491475141127761 或 1480407552234520)。我试图将这些代码放入构造函数中:

self.treeMedia.doubleClicked.connect(self.treeMedia_doubleClicked)

然后我添加了函数:

def treeMedia_doubleClicked(self,index):
    item = self.treeMedia.model().item(index.row(),index.column())
    strData = item.data(0).toPyObject()
    #self.treeMedia.currentIndex()
    print('' + str(strData))

但有时我会看到 nodeItem 信息(例如 "terror" 或 "fotos de perfil")和其他信息,但我会收到此错误:"AttributeError: 'NoneType' object has no attribute 'data'"。可能是什么问题?是填充 qtreeview 的问题吗?或者是使用索引时双击事件函数的问题?请帮我。提前致谢。

如果有人正在寻找答案。

def treeMedia_doubleClicked(self,index):
    item = self.treeView.selectedIndexes()[0]
    print item.model().itemFromIndex(index).text()

我意识到这有点断章取意,但在这里发帖是为了其他路人...

在 pyside6 中,这些都有效

def treeMedia_doubleClicked(self, index):
    print(self.name_of_model.filePath(index))

def treeMedia_doubleClicked(self, index):
    print(index.model().filePath(index))