近期笔者因工作原因,需要做一个安卓手机的文件浏览功能,集成在笔者以前用PyQt5
做的一个的工具当中。文件浏览功能大概做成这样:
- 一个列表界面,列出某个目录下的所有文件名(不区分文件和文件夹)
- 双击某个文件名,尝试进入这个文件名代表的文件夹(文件的情况会失败)
- 右键某个文件名,弹出上下文菜单,可以进入这个文件名对应的文件夹,也可以复制路径到其他的输入框
其中,文件列表选型用了QListView
组件,但在实现兼容双击进入文件夹+右键菜单功能时,稍微踩了下坑。为了解决这个问题,笔者在网上查阅了许多资料,最后找到一种解决方法,决定记录于本文当中。
首先需要了解,Qt
对于QListView
这类数据容器组件,是遵循MVC
的设计模式的。QListView
数据的初始化,方法是这样的: