File Picker
#!/usr/bin/env python
#
# [SNIPPET_NAME: File Picker]
# [SNIPPET_CATEGORIES: PyQt4]
# [SNIPPET_DESCRIPTION: An example file picker]
# [SNIPPET_AUTHOR: Darren Worrall <[email protected]>]
# [SNIPPET_LICENSE: GPL]
# [SNIPPET_DOCS: http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qfiledialog.html]
# example filepicker.py
import sys
from PyQt4 import QtGui, QtCore
class FilePicker(QtGui.QWidget):
"""
An example file picker application
"""
def __init__(self):
# create GUI
QtGui.QMainWindow.__init__(self)
self.setWindowTitle('File picker')
# Set the window dimensions
self.resize(300,75)
# vertical layout for widgets
self.vbox = QtGui.QVBoxLayout()
self.setLayout(self.vbox)
# Create a label which displays the path to our chosen file
self.lbl = QtGui.QLabel('No file selected')
self.vbox.addWidget(self.lbl)
# Create a push button labelled 'choose' and add it to our layout
btn = QtGui.QPushButton('Choose file', self)
self.vbox.addWidget(btn)
# Connect the clicked signal to the get_fname handler
self.connect(btn, QtCore.SIGNAL('clicked()'), self.get_fname)
def get_fname(self):
"""
Handler called when 'choose file' is clicked
"""
# When you call getOpenFileName, a file picker dialog is created
# and if the user selects a file, it's path is returned, and if not
# (ie, the user cancels the operation) None is returned
fname = QtGui.QFileDialog.getOpenFileName(self, 'Select file')
if fname:
self.lbl.setText(fname)
else:
self.lbl.setText('No file selected')
# If the program is run directly or passed as an argument to the python
# interpreter then create a FilePicker instance and show it
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
gui = FilePicker()
gui.show()
app.exec_()