PyQt QLabel

Summary: in this tutorial, you’ll learn how to use the PyQt QLabel widget to display text or an image.

Introduction to the PyQt QLabel Widget

The QLabel class allows you to create a label widget that displays text, an image, or an animated image (GIF).

To create a label widget, you follow these steps:

First, import the QLabel widget from PyQt6.QtWidgets module:

from PyQt6.QtWidgets import QLabelCode language: Python (python)

Second, create a new instance of the QLabel class:

label = QLabel('This is QLabel widget')Code language: Python (python)

In this syntax, you pass a string that you want to display to the QLabel.

Also, you can use the setText() method to set a text to the QLabel widget after creating the QLabel widget:

label = QLabel()
label.setText('This is QLabel widget')Code language: Python (python)

To get the text of the QLabel() widget, you call the text() method:

label.text()Code language: Python (python)

To clear the text of a QLabel widget, you use the clear() method:

label.clear()Code language: Python (python)

PyQt QLabel widget example

The following program shows a window that displays a QLabel widget:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QFont


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt Label Widget')
        self.setGeometry(100, 100, 320, 210)

        # create a QLabel widget
        label = QLabel('This is a QLabel widget')

        # place the widget on the window
        layout = QVBoxLayout()
        layout.addWidget(label)
        self.setLayout(layout)

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

Output:

PyQt QLabel Example

Using the PyQt QLabel widget to display an image

To display an image using the QLabel widget, you do the following steps:

First, import QPixmap from PyQt6.QtGui module:

from PyQt6.QtGui import QPixmapCode language: Python (python)

Second, create a new QPixmap widget with a path to an image file:

pixmap = QPixmap('python-logo.svg')Code language: Python (python)

Note that the python-logo.svg file must be in the same directory as the python program

Third, create a QLabel widget and call the setPixmap() method to display the image:

label = QLabel()
label.setPixmap(pixmap)Code language: Python (python)

The following program shows how to display an image using a QLabel widget:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QPixmap


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt Label Widget')
        self.setGeometry(100, 100, 320, 210)

        label = QLabel()
        pixmap = QPixmap('python-logo.png')
        label.setPixmap(pixmap)

        # place the widget on the window
        layout = QVBoxLayout()
        layout.addWidget(label)
        self.setLayout(layout)

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

Output:

The QPixmap widget supports the following popular image formats including bmp, gif, jpg, jpeg, png, etc.

Using the PyQt QLabel widget to display an animated image

To create a movie, you can follow these steps:

First, import QMovie from PyQt6.QtGui module:

from PyQt6.QtGui import QMovieCode language: Python (python)

Second, create a QMovie object with a path to the GIF file:

movie = QMovie('python.gif')Code language: Python (python)

Third, create a new QLabel widget:

label = QLabel(self)Code language: Python (python)

Fourth, set the movie to the QLabel widget by calling the setMovie() method:

label.setMovie(movie)Code language: Python (python)

Finally, call the start() method of the QMovie object to show the movie:

movie.start()Code language: Python (python)

The following program shows how to display a movie using the QLabel & QMovie widgets:

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt6.QtGui import QMovie


class MainWindow(QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.setWindowTitle('PyQt QLabel Widget')
        self.setGeometry(100, 100, 320, 210)        

        label = QLabel()
        movie = QMovie('python.gif')
        label.setMovie(movie)
        movie.start()

        # place the widget on the window
        layout = QVBoxLayout()
        layout.addWidget(label)
        self.setLayout(layout)

        # show the window
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)

    # create the main window
    window = MainWindow()

    # start the event loop
    sys.exit(app.exec())Code language: Python (python)

Summary

  • Use a PyQt QLabel widget to display a text or an image including an animated image.
Did you find this tutorial helpful ?