Виджет PyQt QLabel в Python — как создать и использовать

Класс QLabel позволяет создать виджет метки, отображающий текст, изображение или анимированное изображение(GIF) в Python.

Содержание

Создание виджета PyQt QLabel

Чтобы создать виджет метки, выполните следующие действия:

  • Сначала импортируйте виджет QLabel из модуля PyQt6.QtWidgets:
from PyQt6.QtWidgets import QLabel
  • Во-вторых, создайте новый экземпляр класса QLabel:
label = QLabel('This is QLabel widget')

В этом синтаксисе вы передаете строку, которую хотите отобразить, в QLabel.

Кроме того, вы можете использовать метод setText() для установки текста в виджет QLabel после создания:

label = QLabel()
label.setText('This is QLabel widget')

Чтобы получить текст виджета QLabel(), вы вызываете метод text():

label.text()

Чтобы очистить текст виджета QLabel, используйте метод clear():

label.clear()

Пример виджета PyQt QLabel

Следующая программа показывает окно, отображающее виджет QLabel:

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())

Выход:

Окно, отображающее виджет QLabel

Использование виджета PyQt QLabel для отображения изображения

Чтобы отобразить изображение с помощью виджета QLabel, выполните следующие действия:

  • Сначала импортируйте QPixmap из модуля PyQt6.QtGui:
from PyQt6.QtGui import QPixmap
  • Во-вторых, создайте новый виджет QPixmap с путем к файлу изображения:
pixmap = QPixmap('python-logo.svg')

Обратите внимание, что файл python-logo.svg должен находиться в том же каталоге, что и программа Python.

  • В-третьих, создайте виджет QLabel и вызовите метод setPixmap() для отображения изображения:
label = QLabel()
label.setPixmap(pixmap)

Следующая программа показывает, как отобразить изображение с помощью виджета QLabel:

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())

Выход:

Пример отображения изображения

Виджет QPixmap поддерживает следующие популярные форматы изображений, включая bmp, gif, jpg, jpeg, png и т. д.

Отображение анимированного изображения

Чтобы создать фильм, вы можете выполнить следующие действия:

  • Сначала импортируйте QMovie из модуля PyQt6.QtGui:
from PyQt6.QtGui import QMovie
  • Во-вторых, создайте объект QMovie с путем к файлу GIF:
movie = QMovie('python.gif')
  • В-третьих, создайте новый виджет QLabel:
label = QLabel(self)
  • В-четвертых, установите фильм в виджете QLabel, вызвав метод setMovie():
label.setMovie(movie)
  • Наконец, вызовите метод start() объекта QMovie, чтобы показать фильм:
movie.start()

Следующая программа показывает, как отобразить фильм с помощью виджетов QLabel и QMovie:

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())
Похожие посты
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *