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 QLabel
Code 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
widget, you call the QLabel
()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:
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 QPixmap
Code 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 QMovie
Code 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.