PyQt5 Development

Dominando o QLabel do PyQt5: Um Guia Completo

Spread the love

Dominando o QLabel do PyQt5: Um Guia Completo

O widget QLabel é uma pedra angular do desenvolvimento de interfaces gráficas com PyQt5, oferecendo uma maneira simples, porém versátil, de exibir texto e imagens. Este tutorial mergulha em suas funcionalidades, fornecendo exemplos práticos e melhores práticas para elevar suas habilidades em PyQt5.

Sumário

  1. Criando e Exibindo Widgets QLabel
  2. Estilizando Texto: Fontes, Cores e HTML
  3. Alinhamento de Texto Preciso
  4. Exibindo Imagens com QLabel
  5. Quebra de Palavras e Ajuste do Tamanho do Texto
  6. Técnicas Avançadas: Sinais e Slots

1. Criando e Exibindo Widgets QLabel

Vamos começar criando um QLabel básico para exibir texto. Isso envolve instanciar a classe QLabel e definir seu widget pai.


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

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

Este trecho de código cria uma janela simples com o texto “Olá, PyQt5!” exibido. O QLabel é filho do QWidget, garantindo a exibição correta dentro da janela.

2. Estilizando Texto: Fontes, Cores e HTML

Além da exibição de texto simples, você pode personalizar significativamente a aparência do QLabel. Vamos explorar a estilização de fontes, alterações de cor e o uso de HTML para formatação de texto enriquecido.


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

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Olá, PyQt5!", window) # Texto em negrito usando HTML
label.setFont(QFont('Arial', 14))
label.setStyleSheet("color: rgb(0, 128, 0);") # Cor do texto verde

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

Este exemplo demonstra a definição de uma fonte específica (Arial, tamanho 14) e uma cor verde usando folhas de estilo. Observe o uso de tags HTML () para texto em negrito dentro do texto do rótulo.

3. Alinhamento de Texto Preciso

Controle a posição do texto dentro do QLabel usando o método setAlignment() e os flags de alinhamento do Qt.


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

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Texto Centralizado", window)
label.setAlignment(Qt.AlignCenter)  # Alinhamento centralizado

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

Isso centraliza o texto. Explore outros flags como Qt.AlignRight, Qt.AlignTop, Qt.AlignBottom e suas combinações para um controle mais preciso.

4. Exibindo Imagens com QLabel

QLabel não serve apenas para texto; ele também pode exibir imagens. Use o método setPixmap() com um objeto 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('caminho/para/sua/imagem.png')  # Substitua pelo caminho da sua imagem
label = QLabel(window)
label.setPixmap(pixmap)
label.setAlignment(Qt.AlignCenter)
label.show()
window.show()
sys.exit(app.exec_())

Lembre-se de substituir 'caminho/para/sua/imagem.png' pelo caminho real para o seu arquivo de imagem.

5. Quebra de Palavras e Ajuste do Tamanho do Texto

Para strings de texto longas, ative a quebra de palavras para evitar que o texto ultrapasse os limites do rótulo. Você também pode ajustar a política de tamanho do rótulo para acomodar o texto.


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

app = QApplication(sys.argv)
window = QWidget()
label = QLabel("Esta é uma string de texto longa que precisa de quebra de palavras.", window)
label.setWordWrap(True)  # Ativa a quebra de palavras
label.adjustSize()       # Ajusta o tamanho do rótulo para caber no texto

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

setWordWrap(True) ativa a quebra de palavras, e adjustSize() garante que o rótulo redimensione automaticamente para caber no texto quebrado.

6. Técnicas Avançadas: Sinais e Slots

QLabel pode emitir sinais, permitindo a interação com outras partes do seu aplicativo. Por exemplo, você pode conectar um sinal a um slot para executar ações quando o rótulo for clicado.

(Exemplo usando mousePressEvent omitido por brevidade, mas facilmente encontrado na documentação do PyQt5)

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *