Eric6与pyqt5学习笔记 9【QFileDialog及BUG如何处理,读取文件内容】

标准文件打开保存框QFileDialog

  • 单个文件打开 QFileDialog.getOpenFileName()

  • 多个文件打开 QFileDialog.getOpenFileNames()

  • 文件夹选取 QFileDialog.getExistingDirectory()

  • 文件保存 QFileDialog.getSaveFileName()

from PyQt5 import QtWidgets  
from PyQt5.QtWidgets import QFileDialog  

class MyWindow(QtWidgets.QWidget):  
    def __init__(self):  
        super(MyWindow,self).__init__()  
        self.myButton = QtWidgets.QPushButton(self)  
        self.myButton.setObjectName("myButton")  
        self.myButton.setText("Test")  
        self.myButton.clicked.connect(self.msg)  

    def msg(self):  
        directory1 = QFileDialog.getExistingDirectory(self,  
                                    "选取文件夹",  
                                    "C:/")                                 #起始路径  
        print(directory1)  

        fileName1, filetype = QFileDialog.getOpenFileName(self,  
                                    "选取文件",  
                                    "C:/",  
                                    "All Files (*);;Text Files (*.txt)")   #设置文件扩展名过滤,注意用双分号间隔  
        print(fileName1,filetype)  

        files, ok1 = QFileDialog.getOpenFileNames(self,  
                                    "多文件选择",  
                                    "C:/",  
                                    "All Files (*);;Text Files (*.txt)")  
        print(files,ok1)  

        fileName2, ok2 = QFileDialog.getSaveFileName(self,  
                                    "文件保存",  
                                    "C:/",  
                                    "All Files (*);;Text Files (*.txt)")  

if __name__=="__main__":    
    import sys    

    app=QtWidgets.QApplication(sys.argv)    
    myshow=MyWindow()  
    myshow.show()  
    sys.exit(app.exec_()) 

报错处理

自己实际开发中遇到了

>>> Exception "unhandled TypeError"
getOpenFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0): argument 1 has unexpected type 'Ui_MainWindow'
File: F:\GitHub\RSAsoftware\Ui_index.py, Line: 73

这种报错,百度google了一番并未找到解决方法,有人说参数不对应,但查看文档手册,参数没问题,最后解决办法,将self.action.triggered.connect(self.openFile) 单独弄出来,原理未知,具体代码可参考下述博客形式:
pyqt5 实现 下拉菜单 + 打开文件
这里写图片描述

读取文件内容

fileName1, filetype1 = QFileDialog.getOpenFileName(self,  "选取文件",  "C:/",  "All Files (*);;Text Files (*.txt)")   #设置文件扩展名过滤,注意用双分号间隔  
#print(fileName1,filetype1)
file = open(fileName1,'r')
data = file.read()
file.close()
self.textEdit.setText(data)

获取文件名后使用open去读取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值