Spec-Zone.ru › Qt 6.0

Класс 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
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 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 clear()
void setMovie(QMovie *movie)
void setNum(double num)
void setNum(int num)
void setPicture(const QPicture &picture)
void setPixmap(const QPixmap &)
void setText(const QString &)

Сигналы

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

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

виртуальный void changeEvent(QEvent *ev) override
виртуальный void contextMenuEvent(QContextMenuEvent *ev) override
виртуальный bool event(QEvent *e) override
виртуальный void focusInEvent(QFocusEvent *ev) override
виртуальный bool focusNextPrevChild(bool next) override
виртуальный void focusOutEvent(QFocusEvent *ev) override
виртуальный void keyPressEvent(QKeyEvent *ev) override
виртуальный void mouseMoveEvent(QMouseEvent *ev) override
виртуальный void mousePressEvent(QMouseEvent *ev) override
виртуальный void mouseReleaseEvent(QMouseEvent *ev) override
виртуальный void paintEvent(QPaintEvent *) override

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

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

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 предоставляет полезный механизм для добавления mnemonics (см. QKeySequence), который переключит фокус клавиатуры на другой виджет (называемый "партнером" QLabel). Например:

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

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

См. также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)

См. также text.

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

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. Любое предыдущее содержимое очищается. Метка НЕ принимает владения над фильмом.

Сокращение "buddy" (если есть) отключается.

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

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

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

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

Сокращение "buddy" (если есть) отключается.

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

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

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

Сокращение "buddy" (если есть) отключается.

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

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

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

Сокращение "buddy" (если есть) отключается.

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

[virtual] QLabel::~QLabel()

Уничтожает метку.

QWidget *QLabel::buddy() const

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

См. также 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.

int QLabel::selectionStart() const

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

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

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

void QLabel::setBuddy(QWidget *buddy)

Устанавливает метку "buddy" для данной метки на buddy.

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

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

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

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", вызовите эту функцию, установив buddy в значение nullptr.

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

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.0/qlabel.html

Spec-Zone.ru

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