[我想为我遇到的一个问题提供一个解决方案,其中QStandardItem
模型以似乎随机的间隔被清除。
addr = []
while isinstance(item, QtGui.QStandardItem):
coordinates = (item.row(), item.column())
addr.insert(0, coordinates)
item = item.parent() # <--- this line is problem
gc.collect() # triggers item deletion
通过父项递归,并将它们分配给变量会导致将它们标记为准备好进行垃圾回收。
改为使用QModelIndex
es。
index = item.index()
addr = []
while index.isValid():
coordinates = (index.row(), index.column())
addr.insert(0, coordinates)
index = index.parent()
gc.collect() # nothing gets deleted now :)