Python 使用PyQt5 完成选择文件或目录的对话框方法

yipeiwu_com6年前Python基础

如下所示:

import sys
from PyQt5.QtWidgets import QMainWindow,QApplication,QTextEdit,QAction,QFileDialog
from PyQt5.QtGui import QIcon

class Example(QMainWindow):
  def __init__(self):
    super(Example, self).__init__()
    self.initUI()
  def initUI(self):
    self.textEdit = QTextEdit()
    self.setCentralWidget(self.textEdit)
    self.statusBar()

    openfile = QAction(QIcon(r'C:\Users\Administrator\PycharmProjects\QT\picture\文件.jpg'),'open',self)
    openfile.setShortcut("Ctrl + 0")
    openfile.setStatusTip('open new file')
    openfile.triggered.connect(self.showDialog)

    menubar = self.menuBar()
    filemune = menubar.addMenu('$File')
    filemune.addAction(openfile)

    self.setGeometry(300,300,300,300)
    self.setWindowTitle('FIEL dialog')
    self.show()
  def showDialog(self):
    fname = QFileDialog.getOpenFileName(self,'open file', '/')
    if fname[0]:
      try:
        f = open(fname[0], 'r')
        with f:
          data = f.read()
          self.textEdit.setText(data)
      except:
        self.textEdit.setText("打开文件失败,可能是文件内型错误")
if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

以上这篇Python 使用PyQt5 完成选择文件或目录的对话框方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python 使用 PyMysql、DBUtils 创建连接池提升性能

Python 使用 PyMysql、DBUtils 创建连接池提升性能

Python 编程中可以使用 PyMysql 进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接 MySQL 数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一...

【python】matplotlib动态显示详解

【python】matplotlib动态显示详解

1.matplotlib动态绘图 python在绘图的时候,需要开启 interactive mode。核心代码如下: plt.ion(); #开启interactive mode...

Python中xml和json格式相互转换操作示例

Python中xml和json格式相互转换操作示例

本文实例讲述了Python中xml和json格式相互转换操作。分享给大家供大家参考,具体如下: Python中xml和json格式是可以互转的,就像json格式转Python字典对象那样...

Flask之请求钩子的实现

请求钩子 通过装饰器为一个模块添加请求钩子, 对当前模块的请求进行额外的处理. 比如权限验证. 说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册...

Python 遍历列表里面序号和值的方法(三种)

Python 遍历列表里面序号和值的方法(三种)

三种遍历列表里面序号和值的方法: 最近学习python这门语言,感觉到其对自己的工作效率有很大的提升,特在情人节这一天写下了这篇博客,下面废话不多说,直接贴代码 #!/usr/bin...