python-3.x - 如何在 QTreeWidget 中获取选定的子索引
问题描述
如何在这样的层次结构中获取所选子项的索引?通过选择名称为“child A”的项目,获取其索引。
if __name__ == '__main__':
app = 0
if QApplication.instance():
app = QApplication.instance()
else:
app = QApplication(sys.argv)
l1 = QTreeWidgetItem(["String A"])
l2 = QTreeWidgetItem(["String AA"])
l1_child = QTreeWidgetItem(["Child A"])
l1.addChild(l1_child)
l2_child = QTreeWidgetItem(["Child AA"])
l2.addChild(l2_child)
w = QWidget()
w.resize(510, 210)
tw = QTreeWidget(w)
tw.resize(500, 200)
tw.setColumnCount(1)
tw.setHeaderHidden(True)
tw.addTopLevelItem(l1)
tw.addTopLevelItem(l2)
w.show()
sys.exit(app.exec_())here
解决方案
您的问题似乎令人困惑,但我将逐字分析。
选定的项目是否是另一个项目的子项之间没有区别,如果您想获取选定的项目,那么您有以下选项:
# ...
w.show()
def on_itemSelectionChanged():
items = tw.selectedItems()
for it in items:
print(it.text(0))
tw.itemSelectionChanged.connect(on_itemSelectionChanged)
sys.exit(app.exec_())
# ...
w.show()
def on_selectionChanged():
indexes = tw.selectedIndexes()
for index in indexes:
print(index.data())
tw.selectionModel().selectionChanged.connect(on_selectionChanged)
sys.exit(app.exec_())
推荐阅读
- c# - 如何提取位于 Azure 存储中的 MP4 视频的缩略图
- android - 如果用户已经在一个平台上购买了同一个应用程序,是否可以避免再次购买同一个应用程序
- python - 用于 LSTM 模型的 Keras 多输出数据重塑
- node.js - 我如何得到这个对齐?
- git - 如何将已推送到 GitHub 的提交链接到问题?
- asp.net-core - SwaggerUI 不使用 Swashbuckle (5.x) 将 ApiKey 添加到 Header
- react-native - React Native Slider 应该接收滑动和触摸手势,但这些被发送到 Android 上的父 ScrollView
- python - Pandas:获取每个用户的最后一个值,其中包含其他列中的某个值
- python - 禁用 qslider 的特定键盘事件
- c# - 如何在 WPF 中增加文本框边框的粗细