PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子

  • 一、使用模型/视图实现一个简单的文件浏览器
  • 二、小手一抖,点个赞再走哦~

一、使用模型/视图实现一个简单的文件浏览器

这个例子里不涉及数据的更新,只是简单的将模型和视图结合起来,通过这个例子我们能简单了解模型和视图的工作原理,形成一个初步的印象。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QTreeView, QListView, QTableView, QSplitter, QFileSystemModel, QDirModel
from PyQt5.QtCore import QDir, QModelIndexif __name__ == '__main__':app = QApplication(sys.argv)# 在新版的C++ Qt里,QDirModel已经被废弃了,可以改为使用QFileSystemModel, PyQt5里目前还能用QDirModelmodel = QDirModel()#model = QFileSystemModel()#model.setRootPath(QDir.currentPath())# 创建三个视图tree_view = QTreeView()list_view = QListView()table_view = QTableView()# 为视图设置数据模型tree_view.setModel(model)list_view.setModel(model)table_view.setModel(model)# 将list_view和table_view的选择模型设置为何tree_view相同list_view.setSelectionModel(tree_view.selectionModel())table_view.setSelectionModel(tree_view.selectionModel())# 设置信号和槽, 以便使list view 和table view能够随tree view中的点击而变化# 当双击tree_view对象中的某个目录时,list_view和table_view对象中也同步显示此选定目录下的所有文件和目录tree_view.doubleClicked.connect(list_view.setRootIndex)tree_view.doubleClicked.connect(table_view.setRootIndex)# 将三个视图添加到分裂器中splitter = QSplitter()splitter.addWidget(tree_view)splitter.addWidget(list_view)splitter.addWidget(table_view)# 设置窗口的titlesplitter.setWindowTitle('Model/View example')splitter.show()sys.exit(app.exec_())

运行效果如下:

二、小手一抖,点个赞再走哦~

20. [Python GUI] PyQt5中的模型与视图框架-实现一个简单的文件浏览器的例子相关推荐

  1. 如何用 Python开发一个简单的 Webkit 浏览器

    在这篇教程中,我们会用 Python 的 PyQt 框架编写一个简单的 web 浏览器.关于 PyQt ,你可能已经有所耳闻了,它是 Qt 框架下的一系列 Python 组件,而 Qt(发音类似&qu ...

  2. V2EX › 郁闷于Python GUI开发,有没有好的框架啊?

    V2EX › 郁闷于Python GUI开发,有没有好的框架啊? 郁闷于Python GUI开发,有没有好的框架啊? By ectotherm at 2 months, 2 weeks ago, 11 ...

  3. 盘点一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列

    一.前言 前几天在Python交流群中遇到一个问了一个使用Python实现Excel中找出第一个及最后一个不为零的数,它们各自在第几列的问题,觉得还挺有用的,这里拿出来跟大家一起分享下. 数据截图如下 ...

  4. python实现一个简单的图片浏览器

    上一个博客中学习了如何在网页上进行简单的图片爬取,目的是制作一个简单的图片浏览器,然后可以选择喜欢的图片筛选到另一个文件夹中. 爬取图片的博客链接:https://blog.csdn.net/yql_ ...

  5. [Qt教程] 第20篇 2D绘图(十)图形视图框架(下)

    [Qt教程] 第20篇 2D绘图(十)图形视图框架(下) 楼主  发表于 2013-5-4 15:43:02 | 查看: 861| 回复: 0 图形视图框架(下) 版权声明 该文章原创于Qter开源社 ...

  6. 安卓手机如何打开php文件夹,Android_Android中调用系统的文件浏览器及自制简单的文件浏览器,调用系统自带的文件浏览器- phpStudy...

    Android中调用系统的文件浏览器及自制简单的文件浏览器 调用系统自带的文件浏览器这很简单: /** 调用文件选择软件来选择文件 **/ private void showFileChooser() ...

  7. Matlab中如何使用appdesigner设计工具建立一个简单的界面

    Matlab中如何使用appdesigner设计工具建立一个简单的界面(数据的输入.处理和保存) 以使用不同算法处理图像的功能为例 建立一个新的空白界面,matlab中输入appdesigner,打开 ...

  8. python火狐配置文件_Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类/Python读取配置文件内容...

    封装一个自己的类-浏览器引擎类 前一篇文章我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动 ...

  9. seq2seq模型_使用Tensorflow搭建一个简单的Seq2Seq翻译模型

    1.背景 首先,这篇博文整理自谷歌开源的神经机器翻译项目Neural Machine Translation (seq2seq) Tutorial.如果你直接克隆这个项目按照Tutorial中的说明操 ...

最新文章

  1. 使用GetNextCell或者GetCell输出vtkCellArray的坐标点
  2. SMOTE 过采样的API使用
  3. 使用NGUINGUI的相关介绍
  4. linux环境下 PYTHONPATH添加
  5. evans pde 第三章_智慧树报关实务第三章答案
  6. hdu 1024(滚动数组优化)
  7. Link State ID
  8. 《嵌入式C编程:PIC单片机和C编程技术与应用》一1.2 注释
  9. linux之用wget下sublime简单使用总结
  10. iphone各机型参数对比_带你了解新款iPhone 12系列四款机型
  11. Vim安装插件在命令行下看代码
  12. 《SaaS架构设计》试读:前 言
  13. 排除“使用主题 css 文件要求页上有标头控件。(例如 head runat=server /)”错误...
  14. python建模 决策_决策树python建模中的坑 :ValueError: Expected 2D array, got 1D array instead:...
  15. 高效的SQLSERVER分页查询(推荐)
  16. OpenGL ES 3.0学习实践
  17. 《国民经济行业分类GB/T 4754—2017》官网下载地址
  18. 获取linux时间 毫秒级,Linux获取毫秒级时间
  19. Vue el-menu-item路由跳转
  20. 软件开源,航芯方案分享 | 全自动咖啡机设计方案

热门文章

  1. 714. 买卖股票的最佳时机含手续费(CPP)
  2. 再读德鲁克#1-信息挑战
  3. 多节点OpenStack Charms 部署指南0.0.1.dev--41--配置openstack-base-73作为juju管理的openstack云
  4. Plantuml类图用法
  5. Exeinfo PE查壳工具
  6. npm not found: python2
  7. 调用百度地图API出现 error inflating class com.baidu.mapapi.map.mapview
  8. 视觉设计中发现的11种光学错觉
  9. 2019云计算公司排名 哪家的云服务器最好用?
  10. LeetCode 复数乘法