该对话框用于文件选择。
QFileDialog的函数
- getOpenFileName():返回用户所选文件的名字来打开它
- getSaveFileName():使用用户所选文件的名字来存储文件
- setacceptMode():决定是打开还是保存,参数是QFileDialog.AcceptOpen和QFileDialog.AcceptSave
- setFileMode():所选文件的类型,枚举常量有QFileDialog.AnyFile、QFileDialog.ExistingFile、QFileDialog.Directory和QFileDialog.Existingfiles
- setFilter():仅显示有特定扩展名的文件
QFileDialog的信号
该对话框实际上是其他widget的整合,所以没有自己的信号
栗子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| import sys from PyQt4.QtCore import * from PyQt4.QtGui import *
class window(QWidget): def __init__(self, parent=None): super(window, self).__init__(parent) self.init()
def init(self): layout = QVBoxLayout() self.button1 = QPushButton() self.label1 = QLabel() self.button2 = QPushButton() self.contents = QTextEdit()
self.button1.setText(u"打开并显示图片文件") self.button2.setText(u"文件对象") self.label1.setText(u"hello world")
self.button1.clicked.connect(self.getfile) self.button2.clicked.connect(self.getfiles)
layout.addWidget(self.button1) layout.addWidget(self.label1) layout.addWidget(self.button2) layout.addWidget(self.contents) self.setLayout(layout) self.setWindowTitle(u"文件选择demo")
def getfile(self): filedata = QFileDialog.getOpenFileName(self,u"打开文件",'c:\\',"Image files (*.jpg *.gif *png)") self.label1.setPixmap(QPixmap(filedata))
def getfiles(self): dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.setFilter("Text files (*.txt)") if dlg.exec_(): filenames = dlg.selectedFiles() f = open(filenames[0],"r") with f : data = f.read() self.contents.setText(unicode(data,"utf8")) self.contents.setReadOnly(True)
def main(): app = QApplication(sys.argv) ex = window() ex.show() sys.exit(app.exec_())
if __name__ == '__main__': main()
|