我有一个关于QTreeWidgetItems
的问题。
当我有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设计器创建了这个程序,所以我没有发布所有的代码。但如果有必要,我会编辑一些关于它的内容
树结构需要实现递归函数
要获取子项的顶级项,请使用while循环获取父项,直到找到有效的父项:
然后,您只需使用您获得的任何项目调用
topLevelParent
,顶级项目将始终返回,即使给定的项目是顶级项目相关问题 更多 >
编程相关推荐