QTreeWidgetItem を特定のインデックスに正しく挿入できません。この場合、ツリーからすべての QTreeWidgetItem を削除し、それらの Date オブジェクトでカスタム ソートを実行してから、それらを QTreeWidget に挿入し直しています。
ただし、(一度に 1 つでも) 挿入すると、QTreeWidgetItem は正しい場所に挿入されません。
以下のコードが出力されます。
インデックス 0: 0
インデックス 0: 1 インデックス 1: 0
インデックス 0: 2 インデックス 1: 1 インデックス 2: 0
インデックス 0: 3 インデックス 1: 2 インデックス 2: 0インデックス 3: 1
インデックス 0: 4 インデックス 1: 2 インデックス 2: 0インデックス 3: 1インデックス 4: 3
print 'index 0: ', self.indexOfTopLevelItem(childrenList[0])
self.insertTopLevelItem(0, childrenList[1])
print 'index 0: ', self.indexOfTopLevelItem(childrenList[0]), ' index 1: ',\
self.indexOfTopLevelItem(childrenList[1])
self.insertTopLevelItem(0, childrenList[2])
print 'index 0: ', self.indexOfTopLevelItem(childrenList[0]), ' index 1: ',\
self.indexOfTopLevelItem(childrenList[1]), ' index 2: ', \
self.indexOfTopLevelItem(childrenList[2])
self.insertTopLevelItem(0, childrenList[3])
print 'index 0: ', self.indexOfTopLevelItem(childrenList[0]), ' index 1: ',\
self.indexOfTopLevelItem(childrenList[1]), ' index 2: ',\
self.indexOfTopLevelItem(childrenList[2]), 'index 3: ',\
self.indexOfTopLevelItem(childrenList[3])
self.insertTopLevelItem(0, childrenList[4])
print 'index 0: ', self.indexOfTopLevelItem(childrenList[0]),\
' index 1: ', self.indexOfTopLevelItem(childrenList[1]),\
' index 2: ', self.indexOfTopLevelItem(childrenList[2]),\
'index 3: ', self.indexOfTopLevelItem(childrenList[3]),\
'index 4: ', self.indexOfTopLevelItem(childrenList[4])