PyQt set icon

One way to set an icon in PyQt5 is to use the setWindowIcon method. This method takes a QIcon object as its sole argument. The QIcon class provides a paint function for drawing the icon in a specified size, mode, and state. It also supports pixmap formats which allows you to easily load icons from files or other sources.

Using PyQt 5 to develop the interface is really convenient, you don’t have to write too much code, about 20 lines can appear a simple GUI with icons, believe it or not, you can look at the following code.

pyqt5 set icon

The example below sets an icon. To set an icon, you’ll need to use the setWindowIcon() method. This method takes in the path to an icon file (or image file) as its only argument.

Make sure to change the path according to where your icon file is located. If the icon resides in the same directory as your program then you can leave out the path completely. This is the best option, because the location will be different on every computer.

import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget

class Logo(QWidget):
    def __init__(self):

    def initUI(self):

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ex = Logo()

The Logo.png image looks like this.

python icon

The result of running (on Ubuntu Linux).

pyqt icon ubuntu

So to set the icon of a window just call:


Run again.

Now it’s the result you want.

Sometimes when you run the code according to the tutorial, you may not have the desired effect, in that case resize the image or save it into another image format.

Icons are an important part of GUIs, as they provide a quick and easy way for users to identify elements on the screen. In PyQt5, there are two ways to set icons: using the setWindowIcon method or setting the QtCore.Qt.windowIcon property.

If you set the latter to a QIcon object, it will take precedence over any windowicon assigned using setWindowIcon. You can also use null (no icon) or empty string (default icon) values for QtCore.Qt.windowIcon if you want to use no icon or a default icon, respectively.

pyqt icon not showing

I have a PyQt application that I’m working on, and for some reason, the icon is not showing up. I’ve tried changing it to different sizes and formats, but nothing seems to work. Any ideas on what could be causing this?

A PyQt application not showing its icon can be due to a number of reasons. One possibility is that the icon file is not in a format that PyQt supports. Another possibility is that the icon file is in the wrong size or dimensions. Finally, it’s also possible that there is something wrong with the code itself.

PyQt supports a range of image formats when setting icons, including: bmp, gif, jpg, jpeg, png, svg, tiff, and xpm. The format of the icon file is determined by its suffix. For example, an icon with the .png suffix will be treated as a PNG file.

If you’re using QIcon to load system icons (e.g., from the files in /usr/share/icons), then it’s important to note that PyQt only supports XPM files. Thus, if your system icons are in another format (e.g., SVG or PNG), you’ll need to convert them to XPM before using them with PyQt5