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