从零开始学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月前
|
C++
C++ Qt开发:自定义Dialog对话框组件
在之前的文章中笔者已经为大家展示了默认`Dialog`组件的使用方法,虽然内置组件支持对数据的输入,但有时候我们需要一次性输入多个数据,此时如果之使用默认模态对话框似乎不太够用,此时我们需要自己创建一个自定义对话框,需要说明的是此类对话框也是一种窗体,所以可以在其上面放置任何通用组件,以实现更多复杂的开发需求。自定义对话框需要解决的问题是,如何让父窗体与子窗体进行数据交换,要实现数据的交换有两种方式,第一种方式是通过动态加载模态对话框,当用户点击确定后通过`GetValue()`来拿到数据,而第二种方式则是通过发送信号的方式将数据投递给父窗体,这两种方式都可以,读者可根据自身需求来选择不同的通
39 1
C++ Qt开发:自定义Dialog对话框组件
|
4月前
|
存储 区块链 C++
C++ Qt开发:ComboBox下拉组合框组件
在Qt中,ComboBox(组合框)是一种常用的用户界面控件,它提供了一个下拉列表,允许用户从预定义的选项中选择一个。该组件提供了一种方便的方式让用户从预定义的选项中进行选择,一般来说`ComboBox`会以按钮的形式显示在界面上,用户点击按钮后,会弹出一个下拉列表,其中包含预定义的选项。当然`ComboBox`不仅局限于选择,也允许用户手动输入内容。
62 0
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(12):QInputDialog对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
从零开始学Pyqt5之【控件介绍】(13):QFontDialog字体选择对话框控件
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(10):QDialog对话框控件
从零开始学Pyqt5之【控件介绍】(17):菜单栏QMenuBar、QToolBar工具栏、QStatusBar状态栏
从零开始学Pyqt5之【控件介绍】(17):菜单栏QMenuBar、QToolBar工具栏、QStatusBar状态栏
从零开始学Pyqt5之【控件介绍】(17):菜单栏QMenuBar、QToolBar工具栏、QStatusBar状态栏
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件
从零开始学Pyqt5之【控件介绍】(5):QRadioButton单选控件

热门文章

最新文章