1
在Pyside中打印出QModelIndex時,對象表示顯示行,列,父,模型和內存地址。但是,如果您打印出index.model(),則模型的內存地址不同。打印QModelIndex與QModelIndex.model():不同的十六進制值?
下面是一些代碼,演示了我的意思:
from PySide import QtGui, QtCore
class TestQModelIndexModelWin(QtGui.QMainWindow):
def __init__(self, parent=None):
super(TestQModelIndexModelWin, self).__init__(parent)
self.listView = QtGui.QListView()
self.setCentralWidget(self.listView)
listModel = QtGui.QStringListModel(['foo', 'bar', 'baz'])
self.listView.setModel(listModel)
numItems = len(listModel.stringList())
for i in range(numItems):
index = listModel.index(i, 0)
print index
print index.model()
當運行這段代碼,結果看起來像下面這樣:
<PySide.QtCore.QModelIndex(0,0,0x0,QStringListModel(0xef1b7e0)) at 0x0000000017656D08>
<PySide.QtGui.QStringListModel object at 0x0000000017656948>
<PySide.QtCore.QModelIndex(1,0,0x0,QStringListModel(0xef1b7e0)) at 0x00000000176564C8>
<PySide.QtGui.QStringListModel object at 0x0000000017656948>
<PySide.QtCore.QModelIndex(2,0,0x0,QStringListModel(0xef1b7e0)) at 0x0000000017656D08>
<PySide.QtGui.QStringListModel object at 0x0000000017656948>
爲什麼QModelIndex顯示QStringListModel十六進制值作爲0xef1b7e0
但QStringListModel顯示其地址爲0x0000000017656948
?
我不知道,你可以得到使用'對象的C++地址shiboken'。好的信息。 –