从零开始学Pyqt5之【控件介绍】(14):QFileDialog文件选择对话框控件

简介: 从零开始学Pyqt5之【控件介绍】(14):QFileDialog文件选择对话框控件

QFileDialog控件的作用


QFileDialog 是用于打开和保存文件的标准对话框。


QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。


QFileDialog控件常用方法


6251abe9aa234d31aa0a2021784e1ed0.png

代码示例


# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
  def __init__(self, parent=None):
    super(filedialogdemo, self).__init__(parent)
    layout = QVBoxLayout()
    self.btn = QPushButton("加载图片")
    self.btn.clicked.connect(self.getfile)
    layout.addWidget(self.btn)
    self.le = QLabel("")
    layout.addWidget(self.le)
    self.btn1 = QPushButton("加载文本文件")
    self.btn1.clicked.connect(self.getfiles)
    layout.addWidget(self.btn1)
    self.contents = QTextEdit()
    layout.addWidget(self.contents)
    self.setLayout(layout)
    self.setWindowTitle("File Dialog 示例")
  def getfile(self):
    # 弹出的窗口名称:'Open file'
    # 默认打开的目录:'c:\\'
    # 只能打开.jpg与.gif结尾的图片文件
    fname, _  = QFileDialog.getOpenFileName(self, 'Open file', 'c:\\',"Image files (*.jpg *.gif)")
    self.le.setPixmap(QPixmap(fname))
  def getfiles(self):
    dlg = QFileDialog()
    dlg.setFileMode(QFileDialog.AnyFile)
    # QFileDialog.ExistingFiles可选择打开多个文件,返回文件路径列表
    # dlg.setFileMode(QFileDialog.ExistingFiles)
    dlg.setFilter(QDir.Files)
    if dlg.exec_():
      # 返回的是打开文件的路径列表
      filenames= dlg.selectedFiles()
      print(filenames)
      with open(filenames[0], 'r') as f:
        data = f.read()
        self.contents.setText(data) 
if __name__ == '__main__':
  app = QApplication(sys.argv)
  ex = filedialogdemo()
  ex.show()
  sys.exit(app.exec_())


代码运行结果:


6317848d3c694c13965a1188bf4938cc.png

打开图片和文本文件后:


670ff143b410420da6f3da6880ecfb87.png

相关文章
|
API 计算机视觉
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
Qt实用技巧:自定义窗口标题栏
|
4月前
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
876 4
|
4月前
|
搜索推荐 C++
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
152 4
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
|
7月前
[Qt5] 右键窗体弹出菜单,实现图像适应窗体大小
[Qt5] 右键窗体弹出菜单,实现图像适应窗体大小
126 0
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件