天天看點

PyQt5學習--基本視窗控件--加載檔案-QFileDialog介紹代碼參考資源

參考書籍《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[], '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_())
           

效果展示

PyQt5學習--基本視窗控件--加載檔案-QFileDialog介紹代碼參考資源
PyQt5學習--基本視窗控件--加載檔案-QFileDialog介紹代碼參考資源

參考資源

1.《PyQt5快速開發與實戰》王碩,孫洋洋

2.《PyQt5快速開發與實戰》源代碼下載下傳連結