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

22 篇文章 0 订阅
4 篇文章 0 订阅

参考书籍《PyQt5 快速开发与实战》王硕 孙洋洋 著

介绍

QFileDialog是用来打开和保存文件的标准对话框。QFileDialog类继承自QDialog类。
QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。

代码

QFileDialog的使用

# -*- coding: utf-8 -*-

'''
    【简介】
    PyQt5中 QFileDialog 例子
'''

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):
        '''
        getOpenFileName():返回用户所选择文件的名称,并打开该文件
        第一个参数用于指定父组件
        第二个参数指定对话框标题
        第三个参数指定目录
        第四个参数是文件扩展名过滤器
        '''
        fname, _  = QFileDialog.getOpenFileName(self, 'Open file', 'c:\\',"Image files (*.jpg *.gif)")
        self.le.setPixmap(QPixmap(fname))

    def getfiles(self):
        '''
        setFileMode():
        QFileDialog.AnyFile,任何文件
        QFileDialog.ExistingFile,已存在的文件
        QFileDialog.Directory,文件目录
        QFileDialog.ExistingFiles,已经存在的多个文件
        '''
        dlg = QFileDialog()
        dlg.setFileMode(QFileDialog.AnyFile)
        #设置过滤器
        dlg.setFilter( QDir.Files  )

        if dlg.exec_():
            filenames= dlg.selectedFiles()
            f = open(filenames[0], 'r') 

            with f:
                data = f.read()
                self.contents.setText(data) 

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = filedialogdemo()
    ex.show()
    sys.exit(app.exec_())

效果展示

1
2


参考资源

1.《PyQt5快速开发与实战》王硕,孙洋洋
2.《PyQt5快速开发与实战》源代码下载链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lingpy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值