【发布时间】:2021-11-25 18:46:06
【问题描述】:
我对@987654322@ 有疑问。
我尝试时,例如。有 5 个不同的分支子节点,然后单击底部(或最后一个)以获取 topLevelItem 的对象名称。我也明白了,但是它的代码变得混乱了。
所以我想问一下是否有比使用此代码更温和的方法来获取topLevelItem:
def treeItem(self):
return self.treeWidget.selectedItems()[0]
def writeJson(self, data, filename="langJson/jsonFile.json"):
with open(filename, "r+") as f:
filedata = json.load(f)
#if data not in filedata:
for x in range(2):
try:
if self.treeItem().parent().parent().text(0) == self.treeWidget.topLevelItem(x).text(0) or \
self.treeItem().parent().parent().parent().text(0) == self.treeWidget.topLevelItem(x).text(0):
filedata[self.treeWidget.topLevelItem(x).text(0)].append(data)
f.seek(0)
json.dump(filedata, f, sort_keys=True,indent=4)
except:
if self.treeItem().parent().text(0) == self.treeWidget.topLevelItem(x).text(0):
filedata[self.treeWidget.topLevelItem(x).text(0)].append(data)
f.seek(0)
json.dump(filedata, f, sort_keys=True, indent=4)
例如,我点击这张图片。到gg 并希望显示 Python 而不重复parent (). parent () ...
注意:我使用 Qt 设计器创建了程序,所以我没有发布所有代码。但如有必要,我会对其进行一些编辑。
【问题讨论】:
-
您需要递归地迭代子级,因为将来如果您的树状 UI 结构深入增长,您的代码现在可以工作,但是只提供一个备用代码,因为没有比这更多的帮助提供。