我正在使用Qt5.2和C++来实现一个应用程序,需要显示一个列表,其中的部分类似于下面的示例图片:
模拟http://www.ngo-hung.com/files/images/contact_list_view_1.png
请注意我没有实现移动应用程序,我不需要右侧的字母索引.除了实现QTreeView之外,我有什么建议可以实现这个目标吗?谢谢.
我正在使用QSortFilterProxyModel为QTreeView实现增量搜索字段。搜索字段是QLineEdit,如下所示:
self.ui_search_lineedit.textEdited[unicode].connect(self._onSearchEdited)
Run Code Online (Sandbox Code Playgroud)
我的_onSearchEdited函数如下所示:
def _onSearchEdited(self, text):
self.proxy_model.setFilterFixedString(text)
self.ui_treeview.clearSelection()
Run Code Online (Sandbox Code Playgroud)
但是,如果我在树状视图中展开一个项目并进行搜索,则如果该项目不匹配,它将消失。当我删除搜索关键字以使其与该商品匹配时,该商品将再次显示,但已折叠。例如,如果我的项目是“ 410”,并且我已经将其展开;在搜索字段中输入“ 4100”,该项目将被隐藏;但是,如果我删除一个0以使搜索键为“ 410”,则该项目将会显示,但它已折叠。
有什么方法可以使该项目保持展开状态,除非用户手动折叠它?