Spec-Zone.ru › Qt 6.1

Класс QLabel

Виджет QLabel предназначен для отображения текста или изображения. Подробнее...

Заголовок: #include <QLabel>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Наследует: QFrame
  • Список всех членов, включая наследуемые
  • Устаревшие члены

Свойства

  • alignment : Qt::Alignment
  • hasSelectedText : const bool
  • indent : int
  • margin : int
  • openExternalLinks : bool
  • pixmap : QPixmap
  • scaledContents : bool
  • selectedText : const QString
  • text : QString
  • textFormat : Qt::TextFormat
  • textInteractionFlags : Qt::TextInteractionFlags
  • wordWrap : bool

Открытые функции

QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags())
QLabel(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
QPicture picture() const
QPixmap pixmap() const
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)
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

Реализованные публичные функции

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

Публичные слоты

void очистить()
void установитьМуви(QMovie *movie)
void установитьЧисло(double num)
void установитьЧисло(int num)
void установитьИзображение(const QPicture &picture)
void установитьПикчер(const QPixmap &)
void установитьТекст(const QString &)

Сигналы

void активироватьСсылка(const QString &link)
void ссылкаНаведение(const QString &link)

Переопределённые защищённые функции

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

Подробное описание

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

Метка QLabel может содержать любой из следующих типов содержимого:

Содержимое Настройка
Обычный текст Передайте QString в setText().
Форматированный текст Передайте QString, содержащий форматированный текст, в setText().
Растровое изображение Передайте QPixmap в setPixmap().
Анимация Передайте QMovie в setMovie().
Число Передайте int или double в setNum(), которое преобразует число в обычный текст.
Пустое То же, что и пустой обычный текст. Это значение по умолчанию. Устанавливается с помощью clear().

Предупреждение: При передаче QString в конструктор или вызове setText(), убедитесь, что ваш ввод очищен, так как QLabel пытается угадать, отображает ли он текст как обычный или как форматированный текст, подмножество разметки HTML 4. Вы можете явно вызвать setTextFormat(), например, если вы ожидаете, что текст будет в обычном формате, но не можете контролировать источник текста (например, при отображении данных, загруженных из сети).

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

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

Позиционирование содержимого в области виджета QLabel можно настроить с помощью setAlignment() и setIndent(). Содержимое текста также может переносить строки по границам слов с помощью setWordWrap(). Например, этот код устанавливает затопленную панель с двустрочным текстом в правом нижнем углу (обе строки выравниваются по правому краю метки):

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

Свойства и функции, которые QLabel наследует от QFrame, также можно использовать для указания рамки виджета, которая будет использоваться для любой заданной метки.

Метка QLabel часто используется в качестве метки для интерактивного виджета. Для этого QLabel предоставляет полезный механизм для добавления мнемоники (см. QKeySequence), которая переведет фокус клавиатуры на другой виджет (так называемый "партнёр" метки QLabel). Например:

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

В этом примере фокус клавиатуры передается партнеру метки (полю QLineEdit) при нажатии пользователя на Alt+P. Если партнёр был кнопкой (наследующей от QAbstractButton), срабатывание мнемоники смоделирует щелчок по кнопке.

См. также QLineEdit, QTextEdit, QPixmap, QMovie и Руководство по проектированию пользовательского интерфейса: Метка.

Документация свойств

alignment : Qt::Alignment

Данное свойство содержит выравнивание содержимого метки.

По умолчанию содержимое метки выравнивается по левому краю и вертикально по центру.

Функции доступа:

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

См. также text.

[read-only] hasSelectedText : const bool

Это свойство указывает, есть ли выделенный текст.

hasSelectedText() возвращает true если часть или весь текст был выделен пользователем; в противном случае возвращает false.

По умолчанию это свойство равно false.

Примечание: В настройках textInteractionFlags метки должно быть включено либо TextSelectableByMouse, либо TextSelectableByKeyboard.

Функции доступа:

bool hasSelectedText() const

См. также selectedText().

indent : int

Это свойство содержит отступ текста метки в пикселях.

Если метка отображает текст, отступ применяется к левому краю, если alignment() равно Qt::AlignLeft, к правому краю, если alignment() равно Qt::AlignRight, к верхнему краю, если alignment() равно Qt::AlignTop, и к нижнему краю, если alignment() равно Qt::AlignBottom.

Если отступ отрицательный или не установлен, метка вычисляет эффективный отступ следующим образом: Если frameWidth() равно 0, эффективный отступ становится 0. Если frameWidth() больше 0, эффективный отступ становится половиной ширины символа "x" текущего шрифта виджета (font).

По умолчанию отступ равен -1, что означает вычисление эффективного отступа описанным выше способом.

Функции доступа:

int indent() const
void setIndent(int)

См. также выравнивание, margin, frameWidth() и font().

margin : int

Это свойство содержит ширину отступа.

Отступ — это расстояние между внутренним пикселем рамки и внешним пикселем содержимого.

Значение отступа по умолчанию — 0.

Функции доступа:

int margin() const
void setMargin(int)

См. также indent.

openExternalLinks : bool

Указывает, нужно ли QLabel автоматически открывать ссылки с помощью QDesktopServices::openUrl() вместо излучения сигнала linkActivated().

Примечание: В настройках textInteractionFlags метки должно быть включено либо LinksAccessibleByMouse, либо LinksAccessibleByKeyboard.

Значение по умолчанию — false.

Функции доступа:

bool openExternalLinks() const
void setOpenExternalLinks(bool open)

См. также textInteractionFlags().

pixmap : QPixmap

Это свойство содержит растровое изображение метки.

Установка растрового изображения очищает любое предыдущее содержимое. Если был установлен «помощник», он отключается.

Функции доступа:

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

scaledContents : bool

Это свойство указывает, будет ли метка масштабировать содержимое, чтобы заполнить все доступное пространство.

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

Значение свойства по умолчанию — false.

Функции доступа:

bool hasScaledContents() const
void setScaledContents(bool)

[read-only] selectedText : const QString

Это свойство содержит выделенный текст.

Если выделенного текста нет, значение свойства — пустая строка.

По умолчанию это свойство содержит пустую строку.

Примечание: В настройках textInteractionFlags метки должно быть включено либо TextSelectableByMouse, либо TextSelectableByKeyboard.

Функции доступа:

QString selectedText() const

См. также hasSelectedText().

text : QString

Это свойство содержит текст метки.

Если текст не задан, возвращается пустая строка. Установка текста очищает любое предыдущее содержимое.

Текст будет интерпретироваться как обычный или форматированный, в зависимости от формата текста; см. setTextFormat(). Значение по умолчанию — Qt::AutoText; т.е. QLabel попытается автоматически определить формат установленного текста. См. Поддерживаемый подмножество HTML для определения форматированного текста.

Если задан «помощник», сочетание клавиш «помощника» обновляется из нового текста.

Обратите внимание, что QLabel хорошо подходит для отображения небольших форматированных текстовых документов, таких как небольшие документы, которые получают настройки документов (шрифт, цвет текста, цвет ссылки) из палитры и свойств шрифта метки. Для больших документов используйте QTextEdit в режиме только для чтения. QTextEdit также может обеспечить полосу прокрутки при необходимости.

Примечание: Эта функция включает отслеживание мыши, если text содержит форматированный текст.

Функции доступа:

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

См. также setTextFormat(), setBuddy() и выравнивание.

textFormat : Qt::TextFormat

Это свойство содержит формат текста метки.

См. перечисление Qt::TextFormat для объяснения возможных вариантов.

Формат по умолчанию — Qt::AutoText.

Функции доступа:

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

См. также text().

textInteractionFlags : Qt::TextInteractionFlags

Указывает, как метка должна взаимодействовать с пользовательским вводом, если она отображает текст.

Если флаги содержат Qt::LinksAccessibleByKeyboard, политика фокуса также автоматически устанавливается в Qt::StrongFocus. Если установлен Qt::TextSelectableByKeyboard, политика фокуса устанавливается в Qt::ClickFocus.

Значение по умолчанию — Qt::LinksAccessibleByMouse.

Функции доступа:

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

wordWrap : bool

Это свойство содержит политику переноса слов в метке.

Если данная свойство true , то текст метки обрезается при необходимости по границам слов; в противном случае он вообще не обрезается.

По умолчанию обрезка по словам отключена.

Функции доступа:

bool wordWrap() const
void setWordWrap(bool on)

См. также текст.

Документация по членам-функциям

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

Создаёт метку, отображающую текст text.

Аргументы parent и флаги виджета f передаются конструктору QFrame.

См. также setText(), setAlignment(), setFrameStyle() и setIndent().

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

Создаёт пустую метку.

Аргументы parent и флаги виджета f передаются конструктору QFrame.

См. также setAlignment(), setFrameStyle() и setIndent().

[slot] void QLabel::clear()

Очищает содержимое метки.

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

Этот сигнал генерируется при нажатии пользователем на ссылку. URL, на который указывает якорь, передаётся в link.

См. также linkHovered().

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

Этот сигнал генерируется при наведении пользователем курсора на ссылку. URL, на который указывает якорь, передаётся в link.

См. также linkActivated().

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

Устанавливает содержимое метки в movie. Предыдущее содержимое очищается. Метка не берёт владение над фильмом.

Сокращение с помощью парного объекта, если оно есть, отключается.

См. также movie() и setBuddy().

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

Это перегруженная функция.

Устанавливает содержимое метки в обычный текст, содержащий текстовое представление двойного значения num. Предыдущее содержимое очищается. Ничего не делает, если строковое представление двойного значения такое же, как текущее содержимое метки.

Сокращение с помощью парного объекта, если оно есть, отключается.

См. также setText(), QString::setNum() и setBuddy().

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

Устанавливает содержимое метки в обычный текст, содержащий текстовое представление целого значения num. Предыдущее содержимое очищается. Ничего не делает, если строковое представление целого значения такое же, как текущее содержимое метки.

Сокращение с помощью парного объекта, если оно есть, отключается.

См. также setText(), QString::setNum() и setBuddy().

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

Устанавливает содержимое метки в picture. Предыдущее содержимое очищается.

Сокращение с помощью парного объекта, если оно есть, отключается.

См. также picture() и setBuddy().

[virtual] QLabel::~QLabel()

Удаляет метку.

QWidget *QLabel::buddy() const

Возвращает парный виджет метки или nullptr, если парный виджет не задан.

См. также setBuddy().

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

Переопределяет: QFrame::changeEvent(QEvent *ev).

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

Переопределяет: QWidget::contextMenuEvent(QContextMenuEvent *event).

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

Переопределяет: QFrame::event(QEvent *e).

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

Переопределяет: QWidget::focusInEvent(QFocusEvent *event).

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

Переопределяет: QWidget::focusNextPrevChild(bool next).

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

Переопределяет: QWidget::focusOutEvent(QFocusEvent *event).

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

Переопределяет: QWidget::heightForWidth(int w) const.

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

Переопределяет: QWidget::keyPressEvent(QKeyEvent *event).

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

Переопределяет функцию доступа к свойству: QWidget::minimumSizeHint.

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

Переопределяет: QWidget::mouseMoveEvent(QMouseEvent *event).

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

Переопределяет: QWidget::mousePressEvent(QMouseEvent *event).

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

Переопределяет: QWidget::mouseReleaseEvent(QMouseEvent *event).

QMovie *QLabel::movie() const

Возвращает указатель на фильм метки или nullptr, если фильм не установлен.

См. также setMovie().

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

Переопределяет: QFrame::paintEvent(QPaintEvent *).

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

Возвращает изображение метки.

Эта функция была добавлена в Qt 6.0.

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

Возвращает поставщик ресурсов для форматированного текста этой метки.

Эта функция была добавлена в Qt 6.1.

См. также setResourceProvider().

int QLabel::selectionStart() const

selectionStart() возвращает индекс первого выбранного символа в метке или -1, если текст не выбран.

Примечание: Для метки должны быть установлены флаги textInteractionFlags, включающие либо TextSelectableByMouse, либо TextSelectableByKeyboard.

См. также selectedText().

void QLabel::setBuddy(QWidget *buddy)

Устанавливает парный виджет метки в buddy.

При нажатии пользователем комбинации клавиш, указанной этой меткой, фокус клавиатуры переносится на парный виджет метки.

Механизм парных виджетов доступен только для меток QLabels, содержащих текст, в котором один символ предваряется амперсандом, '&'. Этот символ устанавливается как комбинация клавиш. Для получения подробной информации см. документацию QKeySequence::mnemonic (чтобы отобразить фактический амперсанд, используйте '&&').

В диалоговом окне вы можете создать два виджета ввода данных и по метке для каждого, и настроить геометрическую компоновку, чтобы каждая метка находилась слева от соответствующего виджета ввода данных (ее «компаньона»), например:

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)

Приведенный выше код переключает фокус на поле «Имя», когда пользователь нажимает Alt+N, и на поле «Телефон», когда пользователь нажимает Alt+P.

Чтобы снять ранее заданного компаньона, вызовите эту функцию, установив buddy в nullptr.

См. также buddy(), setText(), QShortcut и setAlignment().

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

Устанавливает provider ресурсов для форматированного текста этой метки.

Примечание: Метка не принимает provider на владение.

Эта функция была добавлена в Qt 6.1.

См. также resourceProvider().

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

Выделяет текст с позиции start и на length символов.

Примечание: Свойства textInteractionFlags метки должны включать либо TextSelectableByMouse, либо TextSelectableByKeyboard.

См. также selectedText().

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

Переопределяет: QFrame::sizeHint() const.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qlabel.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API