【010】仅调用QT中的文件打开和信息弹窗等_#py

1. 打开文件选择器

fname, _ = QFileDialog.getExistingDirectory(self, '选择文件夹', '.')   # 返回选中的文件夹路径
fname, _ = QFileDialog.getOpenFileName(self, '选择文件并返回地址', '.', '表格数据(*.xls *.xlsx *.csv)')   # 返回选中的文件路径
fname, _ = QFileDialog.getOpenFileNames(self, '打开文件', '.', '表格数据(*.xls *.xlsx *.csv)')   # 返回选中的多个文件路径
QFileDialog.getSaveFileName(self, "保存文件", fname, '表格数据(*.xls *.xlsx *.csv)')   # 存储文件

上述函数的解释如下

函数名第一列第二列第三列第四列
getExistingDirectoryself选择文件夹默认地址返回文件夹
getOpenFileNameself选择单文件默认地址文件格式返回单文件路径
getOpenFileNamesself选择多文件默认地址文件格式返回数据包含多文件路径
getSaveFileNameself保存文件文件地址文件格式

其中文件格式想多选择几种,可以设置如下

name, ok1 = QFileDialog.getOpenFileName(self, '打开文件', '.', '(*.xlsx);;(*.xls);;(*.csv);;All Files (*)')

# name 返回的是文件地址,ok1 返回的是文件格式,由第四列设置决定

可实现效果如下:
在这里插入图片描述

2. 信息弹窗

QMessageBox.information(self, '错误提示', content)

3. 调用上述功能

这两个功能需要在class类里面才能实现(目前没有找到其他办法)
class类里面还要有QWidget的信息,如下:

class QWidgetDialogDemo(QWidget):
    def __init__(self):
        super(QWidgetDialogDemo, self).__init__()
    
    def suibian(self):
    	print("任意调用!!!")
	
	def suibianla(self, t):
		print("获得参数", t)
		
	def suibianle(self, t):
		t = t + 1
		print("计算返回值", t)
		return t

在这个类下面写子函数,不会出现白框或者黑框,也不需要提前预设一个界面,可以直接使用上述两个功能。

其他类直接可以调用这个类的子函数,但在下面应先进行如下预设

if __name__=="__main__":
    app = QApplication(sys.argv)
    QwidgetDemo = QWidgetDialogDemo()
    QwidgetDemo.suibian()   # 即可调用子函数
    QwidgetDemo.suibianla(1)   # 向子函数传参
    t = QwidgetDemo.suibianle(1)   # 调用子函数并返回值

4. 完整代码

from PyQt5.QtWidgets import *

class QWidgetDialogDemo(QWidget):
    def __init__(self):
        super(QWidgetDialogDemo, self).__init__()

    # 获取文件地址
    def loadPath(self, Tfile):
        if Tfile == 1:
            fname, _ = QFileDialog.getOpenFileName(self, '打开文件', '.', '表格数据(*.xls *.xlsx *.csv)')
        else:
            fname, _ = QFileDialog.getOpenFileNames(self, '打开文件', '.', '表格数据(*.xls *.xlsx *.csv)')
        return fname


    # 提示弹窗
    def putQmsg_False(self, content):
        QMessageBox.information(self, '错误提示', content)

if __name__=="__main__":
	app = QApplication(sys.argv)
	QwidgetDemo = QWidgetDialogDemo()
	path = QwidgetDemo.loadPath(1)
	QwidgetDemo.putQmsg_False(path)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

木易:_/

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

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

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

打赏作者

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

抵扣说明:

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

余额充值