【发布时间】:2011-09-14 16:58:10
【问题描述】:
我有一个项目,我需要在代码中更改树小部件的选择。这需要在我清除树并重新填充后完成。
我正在尝试将适当的项目标记为“已选择”,同时我正在添加它们。这适用于根级别节点。但对于子节点,它没有。我需要将 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的调用? -
^ 刚刚将它们添加到代码中。对此感到抱歉。