En esta página

QLabel Class

El widget QLabel proporciona una visualización de texto o imagen. Más...

Cabecera: #include <QLabel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QFrame

Propiedades

Funciones públicas

QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
virtual ~QLabel()
Qt::Alignment alignment() const
QWidget *buddy() const
bool hasScaledContents() const
bool hasSelectedText() const
int indent() const
int margin() const
QMovie *movie() const
bool openExternalLinks() const
(since 6.0) QPicture picture() const
QPixmap pixmap() const
(since 6.1) QTextDocument::ResourceProvider resourceProvider() const
QString selectedText() const
int selectionStart() const
void setAlignment(Qt::Alignment)
void setBuddy(QWidget *buddy)
void setIndent(int)
void setMargin(int)
void setOpenExternalLinks(bool open)
(since 6.1) void setResourceProvider(const QTextDocument::ResourceProvider &provider)
void setScaledContents(bool)
void setSelection(int start, int length)
void setTextFormat(Qt::TextFormat)
void setTextInteractionFlags(Qt::TextInteractionFlags flags)
void setWordWrap(bool on)
QString text() const
Qt::TextFormat textFormat() const
Qt::TextInteractionFlags textInteractionFlags() const
bool wordWrap() const

Funciones públicas reimplementadas

virtual int heightForWidth(int w) const override
virtual QSize minimumSizeHint() const override
virtual QSize sizeHint() const override

Ranuras públicas

void clear()
void setMovie(QMovie *movie)
void setNum(int num)
void setNum(double num)
void setPicture(const QPicture &picture)
void setPixmap(const QPixmap &)
void setText(const QString &)

Señales

void linkActivated(const QString &link)
void linkHovered(const QString &link)

Funciones protegidas reimplementadas

virtual void changeEvent(QEvent *ev) override
virtual void contextMenuEvent(QContextMenuEvent *ev) override
virtual bool event(QEvent *e) override
virtual void focusInEvent(QFocusEvent *ev) override
virtual bool focusNextPrevChild(bool next) override
virtual void focusOutEvent(QFocusEvent *ev) override
virtual void keyPressEvent(QKeyEvent *ev) override
virtual void mouseMoveEvent(QMouseEvent *ev) override
virtual void mousePressEvent(QMouseEvent *ev) override
virtual void mouseReleaseEvent(QMouseEvent *ev) override
virtual void paintEvent(QPaintEvent *) override

Descripción Detallada

Etiqueta

QLabel se utiliza para mostrar texto o una imagen. No proporciona ninguna funcionalidad de interacción con el usuario. El aspecto visual de la etiqueta puede configurarse de varias maneras, y puede utilizarse para especificar una clave mnemotécnica de enfoque para otro widget.

Un QLabel puede contener cualquiera de los siguientes tipos de contenido:

ContenidoConfiguración
Texto sin formatoPasa un QString a setText().
Texto enriquecidoPase un QString que contenga texto enriquecido a setText().
Un mapa de píxelesPase un QPixmap a setPixmap().
Una películaPase un QMovie a setMovie().
Un númeroPase un int o un double a setNum(), que convierte el número en texto sin formato.
NadaLo mismo que un texto plano vacío. Es el valor por defecto. Establecido por clear().

Atención: Cuando pase un QString al constructor o llame a setText(), asegúrese de desinfectar su entrada, ya que QLabel intenta adivinar si muestra el texto como texto plano o como texto enriquecido, un subconjunto de HTML 4 markup. Puede que quiera llamar a setTextFormat() explícitamente, por ejemplo en caso de que espere que el texto esté en formato plano pero no pueda controlar la fuente del texto (por ejemplo cuando se muestran datos cargados desde la Web).

Cuando se modifica el contenido mediante cualquiera de estas funciones, se borra cualquier contenido anterior.

Por defecto, las etiquetas muestran left-aligned, vertically-centered texto e imágenes, donde cualquier tabulación en el texto a mostrar es automatically expanded. Sin embargo, el aspecto de una QLabel puede ajustarse y afinarse de varias maneras.

El posicionamiento del contenido dentro del área del widget QLabel puede ajustarse con setAlignment() y setIndent(). El contenido del texto también puede ajustarse a los límites de las palabras con setWordWrap(). Por ejemplo, este código configura un panel hundido con un texto de dos líneas en la esquina inferior derecha (ambas líneas están a ras con el lado derecho de la etiqueta):

QLabel *label = new QLabel(this);
label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
label->setText("first line\nsecond line");
label->setAlignment(Qt::AlignBottom | Qt::AlignRight);

Las propiedades y funciones que QLabel hereda de QFrame también se pueden utilizar para especificar el marco del widget que se utilizará para cualquier etiqueta.

QLabel se utiliza a menudo como etiqueta de un widget interactivo. Para este uso QLabel proporciona un mecanismo útil para añadir un mnemotécnico (ver QKeySequence) que pondrá el foco del teclado en el otro widget (llamado el "compañero" de QLabel). Por ejemplo:

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

En este ejemplo, el foco del teclado se transfiere al amigo de la etiqueta ( QLineEdit) cuando el usuario pulsa Alt+P. Si el "buddy" fuera un botón (heredando de QAbstractButton), la activación del mnemónico emularía un clic de botón.

Véase también QLineEdit, QTextEdit, QPixmap, y QMovie.

Documentación de propiedades

alignment : Qt::Alignment

Esta propiedad contiene la alineación del contenido de la etiqueta

Por defecto, el contenido de la etiqueta está alineado a la izquierda y centrado verticalmente.

Funciones de acceso:

Qt::Alignment alignment() const
void setAlignment(Qt::Alignment)

Véase también text.

[read-only] hasSelectedText : bool

Esta propiedad indica si hay algún texto seleccionado

hasSelectedText() devuelve true si parte o todo el texto ha sido seleccionado por el usuario; en caso contrario devuelve false.

Por defecto, esta propiedad es false.

Nota: El conjunto textInteractionFlags de la etiqueta debe incluir TextSelectableByMouse o TextSelectableByKeyboard.

Funciones de acceso:

bool hasSelectedText() const

Véase también selectedText().

indent : int

Esta propiedad contiene la sangría del texto de la etiqueta en píxeles

Si una etiqueta muestra texto, la sangría se aplica al borde izquierdo si alignment() es Qt::AlignLeft, al borde derecho si alignment() es Qt::AlignRight, al borde superior si alignment() es Qt::AlignTop, y al borde inferior si alignment() es Qt::AlignBottom.

Si la sangría es negativa, o si no se ha establecido ninguna, la etiqueta calcula la sangría efectiva de la siguiente manera: Si frameWidth() es 0, la sangría efectiva pasa a ser 0. Si frameWidth() es mayor que 0, la sangría efectiva pasa a ser la mitad de la anchura del carácter "x" del widget actual font().

Por defecto, la sangría es -1, lo que significa que la sangría efectiva se calcula de la manera descrita anteriormente.

Funciones de acceso:

int indent() const
void setIndent(int)

Véase también alineación, margin, frameWidth(), y font().

margin : int

Esta propiedad contiene el ancho del margen

El margen es la distancia entre el píxel más interior del marco y el píxel más exterior del contenido.

El margen por defecto es 0.

Funciones de acceso:

int margin() const
void setMargin(int)

Véase también indent.

Especifica si QLabel debe abrir automáticamente los enlaces utilizando QDesktopServices::openUrl() en lugar de emitir la señal linkActivated().

Nota: El conjunto textInteractionFlags de la etiqueta debe incluir LinksAccessibleByMouse o LinksAccessibleByKeyboard.

El valor por defecto es false.

Funciones de acceso:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

Véase también textInteractionFlags().

pixmap : QPixmap

Esta propiedad contiene el mapa de píxeles de la etiqueta.

Al establecer el mapa de píxeles se borra cualquier contenido anterior. El acceso directo a amigos, si existe, se desactiva.

Funciones de acceso:

QPixmap pixmap() const
void setPixmap(const QPixmap &)

scaledContents : bool

Esta propiedad indica si la etiqueta escalará su contenido para llenar todo el espacio disponible.

Cuando está habilitada y la etiqueta muestra un mapa de píxeles, escalará el mapa de píxeles para llenar el espacio disponible.

Por defecto, esta propiedad es false.

Funciones de acceso:

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : QString

Esta propiedad contiene el texto seleccionado

Si no hay texto seleccionado el valor de esta propiedad es una cadena vacía.

Por defecto, esta propiedad contiene una cadena vacía.

Nota: El conjunto textInteractionFlags de la etiqueta debe incluir TextSelectableByMouse o TextSelectableByKeyboard.

Funciones de acceso:

QString selectedText() const

Véase también hasSelectedText().

text : QString

Esta propiedad contiene el texto de la etiqueta

Si no se ha establecido ningún texto, devolverá una cadena vacía. Al establecer el texto se borra cualquier contenido anterior.

El texto se interpretará como texto plano o como texto enriquecido, dependiendo de la configuración del formato de texto; véase setTextFormat(). La configuración por defecto es Qt::AutoText; es decir, QLabel intentará autodetectar el formato del texto establecido. Véase Subconjunto HTML soportado para la definición de texto enriquecido.

Si se ha establecido un buddy, la clave mnemotécnica buddy se actualiza a partir del nuevo texto.

Tenga en cuenta que QLabel es adecuado para mostrar documentos pequeños de texto enriquecido, como documentos pequeños que obtienen su configuración específica del documento (fuente, color del texto, color del enlace) de la paleta de la etiqueta y de las propiedades de la fuente. Para documentos grandes, utilice QTextEdit en modo de sólo lectura. QTextEdit también puede proporcionar una barra de desplazamiento cuando sea necesario.

Nota: Esta función activa el seguimiento del ratón si text contiene texto enriquecido.

Funciones de acceso:

QString text() const
void setText(const QString &)

Véase también setTextFormat(), setBuddy(), y alineación.

textFormat : Qt::TextFormat

Esta propiedad contiene el formato de texto de la etiqueta

Véase el enum Qt::TextFormat para una explicación de las posibles opciones.

El formato por defecto es Qt::AutoText.

Funciones de acceso:

Qt::TextFormat textFormat() const
void setTextFormat(Qt::TextFormat)

Véase también text().

textInteractionFlags : Qt::TextInteractionFlags

Especifica cómo debe interactuar la etiqueta con la entrada del usuario si muestra texto.

Si los indicadores contienen Qt::LinksAccessibleByKeyboard, la política de enfoque también se establece automáticamente en Qt::StrongFocus. Si se establece Qt::TextSelectableByKeyboard, la política de enfoque se establece en Qt::ClickFocus.

El valor por defecto es Qt::LinksAccessibleByMouse.

Funciones de acceso:

Qt::TextInteractionFlags textInteractionFlags() const
void setTextInteractionFlags(Qt::TextInteractionFlags flags)

wordWrap : bool

Esta propiedad contiene la política de ajuste de palabras de la etiqueta.

Si esta propiedad es true, el texto de la etiqueta se envuelve cuando es necesario en los saltos de palabra; en caso contrario, no se envuelve en absoluto.

Por defecto, el ajuste de palabras está desactivado.

Funciones de acceso:

bool wordWrap() const
void setWordWrap(bool on)

Véase también text.

Documentación de las funciones miembro

[explicit] QLabel::QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Construye una etiqueta vacía.

Los argumentos parent y widget flag f, se pasan al constructor QFrame.

Véase también setAlignment(), setFrameStyle() y setIndent().

[explicit] QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())

Construye una etiqueta que muestra el texto text.

Los argumentos parent y widget flag f, se pasan al constructor QFrame.

Véase también setText(), setAlignment(), setFrameStyle() y setIndent().

[virtual noexcept] QLabel::~QLabel()

Destruye la etiqueta.

QWidget *QLabel::buddy() const

Devuelve el compañero de esta etiqueta, o nullptr si no hay ningún compañero.

Véase también setBuddy().

[override virtual protected] void QLabel::changeEvent(QEvent *ev)

Reimplementa: QFrame::changeEvent(QEvent *ev).

[slot] void QLabel::clear()

Borra cualquier contenido de la etiqueta.

[override virtual protected] void QLabel::contextMenuEvent(QContextMenuEvent *ev)

Reimplementa: QWidget::contextMenuEvent(QContextMenuEvent *event).

[override virtual protected] bool QLabel::event(QEvent *e)

Reimplementa: QFrame::event(QEvent *e).

[override virtual protected] void QLabel::focusInEvent(QFocusEvent *ev)

Reimplementa: QWidget::focusInEvent(QFocusEvent *event).

[override virtual protected] bool QLabel::focusNextPrevChild(bool next)

Reimplementa: QWidget::focusNextPrevChild(bool next).

[override virtual protected] void QLabel::focusOutEvent(QFocusEvent *ev)

Reimplementa: QWidget::focusOutEvent(QFocusEvent *event).

[override virtual] int QLabel::heightForWidth(int w) const

Reimplementa: QWidget::heightForWidth(int w) const.

[override virtual protected] void QLabel::keyPressEvent(QKeyEvent *ev)

Reimplementa: QWidget::keyPressEvent(QKeyEvent *event).

[signal] void QLabel::linkActivated(const QString &link)

Esta señal se emite cuando el usuario hace clic en un enlace. La URL a la que hace referencia el ancla se pasa en link.

Véase también linkHovered().

[signal] void QLabel::linkHovered(const QString &link)

Esta señal se emite cuando el usuario pasa el ratón por encima de un enlace. La URL a la que hace referencia el ancla se pasa en link.

Véase también linkActivated().

[override virtual] QSize QLabel::minimumSizeHint() const

Reimplementa una función de acceso para la propiedad: QWidget::minimumSizeHint.

[override virtual protected] void QLabel::mouseMoveEvent(QMouseEvent *ev)

Reimplementa: QWidget::mouseMoveEvent(QMouseEvent *event).

[override virtual protected] void QLabel::mousePressEvent(QMouseEvent *ev)

Reimplementa: QWidget::mousePressEvent(QMouseEvent *event).

[override virtual protected] void QLabel::mouseReleaseEvent(QMouseEvent *ev)

Reimplementa: QWidget::mouseReleaseEvent(QMouseEvent *event).

QMovie *QLabel::movie() const

Devuelve un puntero a la película de la etiqueta, o nullptr si no se ha establecido ninguna película.

Véase también setMovie().

[override virtual protected] void QLabel::paintEvent(QPaintEvent *)

Reimplementa: QFrame::paintEvent(QPaintEvent *).

[since 6.0] QPicture QLabel::picture() const

Devuelve la imagen de la etiqueta.

Esta función se introdujo en Qt 6.0.

Véase también setPicture().

[since 6.1] QTextDocument::ResourceProvider QLabel::resourceProvider() const

Devuelve el proveedor de recursos para el texto enriquecido de esta etiqueta.

Esta función se introdujo en Qt 6.1.

Véase también setResourceProvider().

int QLabel::selectionStart() const

selectionStart() devuelve el índice del primer carácter seleccionado en la etiqueta o -1 si no hay texto seleccionado.

Nota: El conjunto textInteractionFlags de la etiqueta debe incluir TextSelectableByMouse o TextSelectableByKeyboard.

Véase también selectedText().

void QLabel::setBuddy(QWidget *buddy)

Establece el amigo de esta etiqueta en buddy.

Cuando el usuario pulsa la tecla de acceso directo indicada por esta etiqueta, el foco del teclado se transfiere al widget amigo de la etiqueta.

El mecanismo de amigo sólo está disponible para QLabels que contengan texto en el que un carácter vaya precedido de un ampersand, '&'. Este carácter se establece como la tecla de acceso directo. Consulte la documentación de QKeySequence::mnemonic() para más detalles (para mostrar un ampersand real, utilice '&&').

En un diálogo, puedes crear dos widgets de entrada de datos y una etiqueta para cada uno, y configurar el diseño geométrico para que cada etiqueta esté justo a la izquierda de su widget de entrada de datos (su "amigo"), por ejemplo:

QLineEdit *nameEdit  = new QLineEdit(this);
QLabel    *nameLabel = new QLabel("&Name:", this);
nameLabel->setBuddy(nameEdit);
QLineEdit *phoneEdit  = new QLineEdit(this);
QLabel    *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);
// (layout setup not shown)

Con el código anterior, el foco salta al campo Nombre cuando el usuario pulsa Alt+N, y al campo Teléfono cuando el usuario pulsa Alt+P.

Para anular la selección de un amigo, llame a esta función con buddy a nullptr.

Véase también buddy(), setText(), QShortcut, y setAlignment().

[slot] void QLabel::setMovie(QMovie *movie)

Establece el contenido de la etiqueta en movie. Se borra cualquier contenido anterior. La etiqueta NO se apropia de la película.

El acceso directo de amigo, si existe, se desactiva.

Véase también movie() y setBuddy().

[slot] void QLabel::setNum(int num)

Establece el contenido de la etiqueta en texto sin formato que contiene la representación textual del número entero num. Se borra cualquier contenido anterior. No hace nada si la representación textual del entero es la misma que el contenido actual de la etiqueta.

El acceso directo de amigo, si existe, se desactiva.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](int num) { receiver->setNum(num); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

Véase también setText(), QString::setNum() y setBuddy().

[slot] void QLabel::setNum(double num)

Establece el contenido de la etiqueta en texto sin formato que contiene la representación textual del doble num. Se borra cualquier contenido anterior. No hace nada si la representación textual del double es la misma que el contenido actual de la etiqueta.

El acceso directo de amigo, si existe, se desactiva.

Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        label, qOverload(&QLabel::setNum));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        label, [receiver = label](double num) { receiver->setNum(num); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

Véase también setText(), QString::setNum() y setBuddy().

[slot] void QLabel::setPicture(const QPicture &picture)

Establece el contenido de la etiqueta en picture. Se borra cualquier contenido anterior.

El acceso directo a amigos, si existe, se desactiva.

Véase también picture() y setBuddy().

[since 6.1] void QLabel::setResourceProvider(const QTextDocument::ResourceProvider &provider)

Establece el provider de recursos para texto enriquecido de esta etiqueta.

Nota: La etiqueta no se apropia de provider.

Esta función se introdujo en Qt 6.1.

Véase también resourceProvider().

void QLabel::setSelection(int start, int length)

Selecciona texto a partir de la posición start y para caracteres length.

Nota: El conjunto textInteractionFlags de la etiqueta debe incluir TextSelectableByMouse o TextSelectableByKeyboard.

Véase también selectedText().

[override virtual] QSize QLabel::sizeHint() const

Reimplementa: QFrame::sizeHint() const.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.