QtGui.QFileDialog
The QtGui.QFileDialog
is a dialog that allows users to select files or directories. The files can be selected for both opening and saving.
#!/usr/bin/python # -*- coding: utf-8 -*- """ ZetCode PyQt4 tutorial In this example, we select a file with a QtGui.QFileDialog and display its contents in a QtGui.QTextEdit. author: Jan Bodnar website: zetcode.com last edited: October 2011 """ import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.textEdit = QtGui.QTextEdit() self.setCentralWidget(self.textEdit) self.statusBar() openFile = QtGui.QAction(QtGui.QIcon('open.png'), 'Open', self) openFile.setShortcut('Ctrl+O') openFile.setStatusTip('Open new File') openFile.triggered.connect(self.showDialog) menubar = self.menuBar() fileMenu = menubar.addMenu('&File') fileMenu.addAction(openFile) self.setGeometry(300, 300, 350, 300) self.setWindowTitle('File dialog') self.show() def showDialog(self): fname = QtGui.QFileDialog.getOpenFileName(self, 'Open file', '/home') f = open(fname, 'r') with f: data = f.read() self.textEdit.setText(data) def main(): app = QtGui.QApplication(sys.argv) ex = Example() sys.exit(app.exec_()) if __name__ == '__main__': main()
The example shows a menubar, centrally set text edit widget and a statusbar. The menu item shows the QtGui.QFileDialog
which is used to select a file. The contents of the file are loaded into the text edit widget.
class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__()
The example is based on the QtGui.QMainWindow
widget because we centrally set the text edit widget.
fname = QtGui.QFileDialog.getOpenFileName(self, 'Open file', '/home')
We pop up the QtGui.QFileDialog
. The first string in the getOpenFileName()
method is the caption. The second string specifies the dialog working directory. By default, the file filter is set to All files (*).
f = open(fname, 'r') with f: data = f.read() self.textEdit.setText(data)
The selected file name is read and the contents of the file are set to the text edit widget.
Figure: File dialog