1、前言

在学习Pyqt5过程中,遇到了想通过按钮等控件打开文件夹,类似于下面(图1)的 '打开文件夹一样' 的效果

(图1)

本来以为PyQt5 会有类似于QFileDialog 的文件对话框进行文件夹打开浏览,但并没有发现。

在进一步查找资料发现可以通过Python 中内置os 模块库可以达到打开文件夹要求。

2、pyqt5实现打开文件夹

首先在D盘新建一个用于测试的文件夹(我的如下面 图2)

(图2)

下面直接放代码,创建py文件直接复制即可使用。

# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'openfoldertest.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(320, 240)self.pushButton = QtWidgets.QPushButton(Form)self.pushButton.setGeometry(QtCore.QRect(80, 80, 111, 31))self.pushButton.setObjectName("pushButton")self.retranslateUi(Form)#点击按钮信号传送到打开文件夹函数self.pushButton.clicked.connect(self.openfolder)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.pushButton.setText(_translate("Form", "打开文件夹"))def openfolder(self,Form):'''打开系统文件资源管理器的对应文件夹'''import osfolder = r'D:\aatest'#方法1:通过start exploreros.system("start explorer %s" %folder)# 方法2:通过startfileos.startfile(folder)if __name__ == "__main__":import sysQtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)# 适配2k等高分辨率屏幕,低分辨率屏幕可除去app = QtWidgets.QApplication(sys.argv)Form = QtWidgets.QWidget()ui = Ui_Form()ui.setupUi(Form)Form.show()sys.exit(app.exec_())

运行点击‘打开文件夹按钮’结果如下面图3

(图3)

3、分析与说明

如上面代码,我用了两种方法打开文件夹,所以会弹出两个文件软件窗口。在实际使用选其一即可。比较推荐方法2。

方法1:

#方法1:通过start exploreros.system("start explorer %s" %folder)

方法2:

        # 方法2:通过startfileos.startfile(folder)

PyQt5学习:通过按钮控件打开windows系统文件软件(文件资源管理器)的文件夹进行浏览文件夹下所有文件相关推荐

  1. PyQt5学习--基本窗口控件--QLabel

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件.纯文本. ...

  2. PyQt5学习--基本窗口控件--QMainWindow

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 QMainWindow主窗口为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件.比如将工具栏.菜单栏和状态栏等添加到布 ...

  3. 【pyqt5学习】——tablewidget控件学习

    目录 1.Table Widget 1.QTableWidget不能在mainwindow中随主窗口的大小变化? 2.将表格变为禁止编辑: 3.设置表格为整行选择 4.单个选中和多个选中的设置: 5. ...

  4. PyQt5学习--基本窗口控件--加载文件-QFileDialog

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QFileDialog是用来打开和保存文件的标准对话框.QFileDialog类继承自QDialog类. QFileDialo ...

  5. PyQt5学习--基本窗口控件--QButton类控件

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 PyQt5按钮的基类是QAbstractButton,为抽象类,不能实例化. 常见的按钮类有:QPushButton.QToo ...

  6. VS2010/MFC编程入门之二十三(常用控件:按钮控件的编程实例)

    上一节VS2010/MFC编程入门教程中鸡啄米讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件 ...

  7. VS2019/MFC编程入门之常用控件:按钮控件的编程实例

    上一节VS2010/MFC编程入门教程中讲了按钮控件Button.Radio Button和Check Box的基本用法,本节就继续讲按钮控件的内容,通过一个实例让大家更清楚按钮控件在实际的软件开发中 ...

  8. Win+E打开文件资源管理器而不是我的电脑

    1.Win+E进入文件资源管理器后依次点击查看 - 选项 2.更改文件夹选项 - 常规 - 打开文件资源管理器时打开为此电脑 3.再次使用快捷键Win+E,打开为我的电脑

  9. qt 关闭窗口的槽函数_勇哥的VC++应用框架学习之QT(1) 信号槽、按钮控件、opencv读取显示图片...

    前言勇哥对于C语言,C++早些年有一些接触,这个系列贴子就记载一下C++应用框架的学习经验. 在写程序时,UI.基础类库.应用程序框架对于vc来讲,只能依靠MFC和QT了. 勇哥对MFC有很强的抵触, ...

最新文章

  1. 相机定位 | cv paper整理
  2. React + TypeScript:元素引用的传递
  3. Dynamics 365 On-premises和Online 的不同
  4. Vmware由于centos升级内核不可运行(C header files matching your running kernel were not found)的解决方案...
  5. leetcode 100.Same Tree
  6. Jquery技巧:使用ajax技术提交表单数据
  7. 为什么我坚持用Go语言做Web应用开发框架?
  8. 实现字符级的LSTM文本生成
  9. MS SQL安装提示
  10. 生命在此定格 路透记者遇难前拍下的最后画面
  11. 软考高级 真题 2017年上半年 信息系统项目管理师 案例分析
  12. 台式计算机怎么安装无线网卡,台式机用无线网卡,小编教你台式机怎么用无线网卡...
  13. 发送邮件 显示对方服务器未响应,邮件对方服务器未响应
  14. 【Python基础】03 程序的控制流
  15. python random.randint()函数介绍
  16. Pytest-Pytest框架的使用
  17. 微信android字体颜色,企业微信使用markdown发送消息,手机端看不到font标签设置的字体颜色...
  18. 人生无根蒂,飘如陌上尘.
  19. win7访问共享文件提示:禁用当前账户
  20. Latex中文文献的引用(bib)

热门文章

  1. JDBC_学习笔记(婷姐教的)
  2. 计算机组装与维修技能鉴定,计算机安装调试维修员(四级)技能鉴定试题单总汇.docx...
  3. Nacos 是如何同时实现AP与CP的
  4. color-scheme CSS 属性的配色方案
  5. 计算机更新失败变的很卡,win 8.1 运行慢,更新kb2919355失败频繁重启等问题
  6. windows2012R2更新KB2919355
  7. 百度地图开发:多边形覆盖物鼠标高亮效果和标签展示
  8. 酷炫纯CSS代码实现时空穿梭动效
  9. IT企业工作纯技术性分析(下)
  10. 第四十五章 SQL函数 DATEPART