PyQt5 Development

Полное руководство по PyQt5 QLabel

Spread the love

Освоение PyQt5 QLabel: Полное руководство

Виджет QLabel является краеугольным камнем разработки графического интерфейса PyQt5, предлагая простой, но универсальный способ отображения текста и изображений. Это руководство углубляется в его функциональные возможности, предоставляя практические примеры и лучшие практики для повышения ваших навыков PyQt5.

Оглавление

  1. Создание и отображение виджетов QLabel
  2. Стилизация текста: шрифты, цвета и HTML
  3. Точное выравнивание текста
  4. Отображение изображений с помощью QLabel
  5. Перенос слов и регулировка размера текста
  6. Расширенные методы: сигналы и слоты

1. Создание и отображение виджетов QLabel

Начнем с создания базового QLabel для отображения текста. Это включает в себя создание экземпляра класса QLabel и установку его родительского виджета.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window)
label.show()
window.show()
sys.exit(app.exec_())

Этот фрагмент кода создает простое окно с отображаемым текстом «Hello, PyQt5!». QLabel является дочерним элементом QWidget, обеспечивая правильное отображение в окне.

2. Стилизация текста: шрифты, цвета и HTML

Помимо простого отображения текста, вы можете значительно настроить внешний вид QLabel. Давайте рассмотрим стилизацию шрифтов, изменение цвета и использование HTML для форматирования текста.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QFont, QColor

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Hello, PyQt5!", window) # Жирный текст с помощью HTML
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # Зеленый цвет текста

label.show()
window.show()
sys.exit(app.exec_())

В этом примере показано задание определенного шрифта (Arial, размер 14) и зеленого цвета с помощью таблиц стилей. Обратите внимание на использование тегов HTML () для полужирного текста внутри текста метки.

3. Точное выравнивание текста

Управляйте положением текста внутри QLabel с помощью метода setAlignment() и флагов выравнивания Qt.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Центрированный текст", window)
label.setAlignment(Qt.AlignCenter)  # Выравнивание по центру

label.show()
window.show()
sys.exit(app.exec_())

Это центрирует текст. Изучите другие флаги, такие как Qt.AlignRight, Qt.AlignTop, Qt.AlignBottom и их комбинации для тонкого управления.

4. Отображение изображений с помощью QLabel

QLabel предназначен не только для текста; он также может отображать изображения. Используйте метод setPixmap() с объектом QPixmap.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
pixmap = QPixmap('path/to/your/image.png')  # Замените на путь к вашему изображению
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())

Не забудьте заменить 'path/to/your/image.png' на фактический путь к вашему файлу изображения.

5. Перенос слов и регулировка размера текста

Для длинных текстовых строк включите перенос слов, чтобы предотвратить переполнение текста за границы метки. Вы также можете настроить политику размера метки для размещения текста.


import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Это длинная текстовая строка, которая нуждается в переносе слов.", window)
label.setWordWrap(True)  # Включить перенос слов
label.adjustSize()       # Настроить размер метки под текст

label.show()
window.show()
sys.exit(app.exec_())

setWordWrap(True) активирует перенос слов, а adjustSize() гарантирует, что метка автоматически изменяет свой размер, чтобы соответствовать переносимому тексту.

6. Расширенные методы: сигналы и слоты

QLabel может генерировать сигналы, обеспечивая взаимодействие с другими частями вашего приложения. Например, вы можете подключить сигнал к слоту для выполнения действий при щелчке по метке.

(Пример использования mousePressEvent опущен для краткости, но легко найти в документации PyQt5)

Добавить комментарий

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