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_())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM