Виджет PyQt QLabel в Python — как создать и использовать
Класс QLabel позволяет создать виджет метки, отображающий текст, изображение или анимированное изображение(GIF) в Python.
- Создание виджета PyQt QLabel
- Пример виджета PyQt QLabel
- Использование виджета PyQt QLabel для отображения изображения
- Отображение анимированного изображения
Создание виджета 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())
Выход:
Использование виджета 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())