首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >搜索TreeView

搜索TreeView
EN

Stack Overflow用户
提问于 2016-07-18 16:33:13
回答 1查看 1.2K关注 0票数 0

我正在做一个项目,正在使用树视图。我做了很多搜索,我找到的答案是遍历整个treeview,但甚至不知道怎么做,所以我的问题是如何在treeview中搜索包含输入字符串的项。这个想法是有一个输入框,当用户按下包含用户输入内容的搜索项时,用户可以在其中键入一些内容。我不确定我是否可以在树形视图中这样做,或者它是否必须进入列表视图。我使用的是windows 7 pyqt5 Python3.5

代码语言:javascript
复制
self.treeView = QtWidgets.QTreeView(self.centralWidget)
self.treeView.setSortingEnabled(True)
self.treeView.setObjectName("treeView")
self.horizontalLayout_4.addWidget(self.treeView)
self.file_model=QtWidgets.QFileSystemModel()
self.file_model.setRootPath('C:\My Stuff\Movies')
self.treeView.setModel(self.file_model)
self.treeView.setRootIndex(self.file_model.index('C:\My Stuff\Movies'))
self.treeView.setHeaderHidden(True)
self.treeView.hideColumn(1)
self.treeView.hideColumn(2)
self.treeView.hideColumn(3)
EN

回答 1

Stack Overflow用户

发布于 2016-07-21 18:38:24

此答案是解决方案的概要。

您可能会发现我为SCM Workbench编写的代码非常有用,可供参考:

https://github.com/barry-scott/scm-workbench/blob/master/Source/Scm/wb_scm_table_model.py

在我的应用程序中,我认为indexFromBookmark()函数与您想要的很接近。

首先,您需要树的根。您可以使用self.invisibleRootItem()获取该项目。

你可以问这个项目两件有趣的事情。通过调用item.child( row )(其中行从0开始),从item.text()中获取它的名称及其子对象。

当找到感兴趣的项目时,可以使用indexFromItem()将该项目转换为索引。例如,您需要一个索引来设置树中的选择。

有了文件名,我猜你会拆分成'\‘,每个项目的text()都是路径部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38432030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档