GSa*_*ngs 1 pyqt4 qtreeview python-2.7 qstandarditemmodel qstandarditem
我正在使用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'])
Run Code Online (Sandbox Code Playgroud)
SELECT_TREE_ALBUM(codus是专辑所有者的id)和SELECT_TREE_PHOTO是从数据库返回数据的函数.rowalb 1是专辑的名称,rowalb [0]是ID,rowalb [0]用于获取这张专辑的照片.图为:

我想使用doubleclick事件获取childItem数据(例如1491475964461012,1491475821127693,1491475631127712,1491475141127761或1480407552234520).我试图将这些代码放入构造函数中:
self.treeMedia.doubleClicked.connect(self.treeMedia_doubleClicked)
Run Code Online (Sandbox Code Playgroud)
之后我添加了这个功能:
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))
Run Code Online (Sandbox Code Playgroud)
但有时我看到nodeItem信息(例如"恐怖"或"fotos de perfil")和其他我得到此错误:"AttributeError:'NoneType'对象没有属性'data'".可能是什么问题?是填写qtreeview的问题?或者是使用索引时双击事件功能的问题?请帮我.提前致谢.
小智 9
如果有人在寻找答案.
def treeMedia_doubleClicked(self,index):
item = self.treeView.selectedIndexes()[0]
print item.model().itemFromIndex(index).text()
Run Code Online (Sandbox Code Playgroud)