python logo

PyQt4 GUI tutorial

Python hosting: Host, run, and code Python in the cloud!

In this tutorial we will teach you how to create a graphical application with PyQT4. This will work on any platform that supports PyQT4 including Windows, Linux, UNIX, Android, OS X and iOS.

Related course:

PyQt4 installation

PyQt does not include Qt itself – you may have to obtain it separately.
The homepage for PyQt is

You will need to install some packages:

sudo pip install pyqt
sudo apt-get install qt4-designer
sudo apt-get install pyqt4-dev-tools
sudo apt-get install python-kde4

If python-kde4 cannot be found update your repository to find it. If you are on Ubuntu use this link.

Building a PyQT4 GUI

Now we can use the QT Designer application. It saves us from writing tons of layout code that you may be used to when writing HTML. Start qt4-designer from your applications menu. The QT Designer application will appear.

QT_Designer QT Designer

Press Dialog without Buttons and press Create. You can now drag any component from the widget box to the form. Simple drag and drop. We added a button, label and a pixmap. (I took a random image from the web for the pixmap)

QT_KDE_Dialog QT KDE Dialog

Our window looks like the image above. Press Form > Viewcode. We will get a popup box with the form code in… C++! That is great, but we want the Python code. Press File > Save as > form.ui.

The file test.ui contains your form described in XML format. (You can view it in a text editor) Open a console and type:

pyuic4 form.ui >

Running the file does nothing. Create a new file called

Paste the code below:

import sys
from PyQt4 import QtCore, QtGui
from form import Ui_Dialog

class MyDialog(QtGui.QDialog):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()

if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MyDialog()

Run with:


This will open our graphical interface. Pressing on the OK button will simply close the application.

pyqt_window-300x215 PyQt Window with QButton

We want to add some action when the OK button is pressed. We add these three lines to the code:


def OK(self):
print 'OK pressed.'

pyqt4 app example pyqt4 app example

Download PyQT4 Examples (Bulk Collection)

You may like: Create a webbrowser with PyQT4 or PyQt4 Overview


Leave a Reply: