0
私はコードでツリーウィジェットの選択を変更する必要があるプロジェクトがあります。これは私が木をきれいにしてから再び植えた後に行う必要があります。QTreeWidgetでsetSelected
私はそれらを追加している間、適切なアイテムを「選択済み」としてマークしようとしています。これは、ルートレベルのノードで機能します。しかし、子ノードの場合、それはしません。 QTreeWidgetItemを別の変数に格納し、ツリーが完全に埋め込まれた後に選択してマークする必要があります。なぜこれが起こるのですか?
これは動作しません:
def refreshTree(self):
treeObj.clear()
for item in items:
temp = QTreeWidgetItem(0)
for key, val in item.subitems().items():
childTemp = QTreeWidgetItem(0)
...setup text, font, etc...
if(condition1):
childTemp.setSelected(True)
temp.addChild(childTemp)
if(!condition1 and condition2):
temp.setSelected(True)
treeObj.addToplevelItem(temp)
これが行います。
def refreshTree(self):
treeObj.clear()
for item in items:
temp = QTreeWidgetItem(0)
for key, val in item.subitems().items():
childTemp = QTreeWidgetItem(0)
...setup text, font, etc...
if(condition1):
selTemp = childTemp
temp.addChild(childTemp)
if(!condition1 and condition2):
temp.setSelected(True)
elif(selTemp):
selTemp.setSelected(True)
treeObj.addToplevelItem(temp)
サンプルコードを表示できますか? –
いくつかのコードを追加しました –
'temp.addChild'(と' treeObj.addTopLevelItems')の呼び出しが 'setSelected'の呼び出しに相対的な場所を表示できますか? – alexisdm