QTableWidgetIem,当我点击不同部门的不同孩子时如何获得顶级文本
QTableWidgetIem, how to get TopLevel text when I click on different childs in different dephts
我有一个关于 QTreeWidgetItems
的问题。
我尝试当我例如。有 5 个不同的分支子项并单击底部(或最后一个)以获取 topLevelItem
的 object 名称。我也明白了,但是它的代码变得混乱了。
所以我想问一下是否有比使用此代码更温和的方法来获取 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 设计器创建程序的,所以我没有 post 所有代码。但如果有必要,我会对其进行一些编辑。
树结构需要实现递归函数。
要获取子项的顶级项目,请使用 while 循环获取父项,直到找到有效的父项:
def topLevelParent(self, item):
while item.parent():
item = item.parent()
return item
然后你只需调用 topLevelParent
你得到的任何项目,顶级将始终返回,即使给定项目 是 顶级。
我有一个关于 QTreeWidgetItems
的问题。
我尝试当我例如。有 5 个不同的分支子项并单击底部(或最后一个)以获取 topLevelItem
的 object 名称。我也明白了,但是它的代码变得混乱了。
所以我想问一下是否有比使用此代码更温和的方法来获取 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 设计器创建程序的,所以我没有 post 所有代码。但如果有必要,我会对其进行一些编辑。
树结构需要实现递归函数。
要获取子项的顶级项目,请使用 while 循环获取父项,直到找到有效的父项:
def topLevelParent(self, item):
while item.parent():
item = item.parent()
return item
然后你只需调用 topLevelParent
你得到的任何项目,顶级将始终返回,即使给定项目 是 顶级。