1. 程式人生 > >PyQt5-對話方塊控制元件使用(QFileDialog)

PyQt5-對話方塊控制元件使用(QFileDialog)

QFileDialog是用於開啟和儲存檔案的標準對話方塊。 QFileDialog類繼承QDialog類;

QFileDialog在開啟檔案時使用了文字過濾器,用於顯示指定副檔名的檔案。也可以設定使用QFileDialog開啟檔案時的起始目錄和指定副檔名的檔案。

常用方法:

 例如:

 1 #QFileDialog對話方塊使用
 2 from PyQt5.QtWidgets import QFileDialog,QTextEdit,QFontDialog, QLineEdit,QStyle,QFormLayout, QInputDialog,QVBoxLayout,QWidget,QApplication ,QHBoxLayout,QDialog,QPushButton,QMainWindow,QGridLayout,QLabel
3 from PyQt5.QtCore import QDir 4 from PyQt5.QtGui import QIcon,QPixmap,QFont 5 from PyQt5.QtCore import Qt 6 7 import sys 8 9 class WindowClass(QWidget): 10 11 def __init__(self,parent=None): 12 13 super(WindowClass, self).__init__(parent) 14 layout=QVBoxLayout() 15 self.btn=QPushButton("
載入圖片") 16 self.btn.clicked.connect(self.getFile) 17 layout.addWidget(self.btn) 18 19 self.le=QLabel("") 20 layout.addWidget(self.le) 21 22 self.btn1=QPushButton("載入文字檔案") 23 self.btn1.clicked.connect(self.getText) 24 layout.addWidget(self.btn1)
25 26 self.contents=QTextEdit() 27 layout.addWidget(self.contents) 28 29 self.setLayout(layout) 30 self.setWindowTitle("File Dialog Demo") 31 32 def getFile(self): 33 fname,_ =QFileDialog.getOpenFileName(self,'OpenFile',"c:/","Image files (*.jpg *.gif *.png)") 34 """ 35 引數一:設定父元件 36 引數二:QFileDialog的標題 37 引數三:預設開啟的目錄,“.”點表示程式執行目錄,/表示當前碟符根目錄 38 引數四:對話方塊的副檔名過濾器Filter,比如使用 Image files(*.jpg *.gif) 表示只能顯示副檔名為.jpg或者.gif檔案 39 設定多個副檔名過濾,使用雙引號隔開; 40 “All Files(*);;PDF Files(*.pdf);;Text Files(*.txt)” 41 """ 42 self.le.setPixmap(QPixmap(fname)) 43 def getText(self): 44 dialog=QFileDialog() 45 dialog.setFileMode(QFileDialog.AnyFile)#可選任意檔案 46 dialog.setFilter(QDir.Files) 47 48 if dialog.exec_():#該方法用於選擇檔案,如果選中檔案則返回true 49 filenames=dialog.selectedFiles()#獲取選中檔名列表 50 print(filenames) 51 f=open(filenames[0],'r') 52 with f: 53 data=f.read() 54 self.contents.setText(data) 55 56 57 if __name__=="__main__": 58 app=QApplication(sys.argv) 59 win=WindowClass() 60 win.show() 61 sys.exit(app.exec_())