Класс QLabel
Виджет QLabel предоставляет отображение текста или изображения. Подробнее...
| Заголовок: | #include <QLabel> |
| qmake: | QT += widgets |
| Наследуется от: | QFrame |
Свойства
|
|
Открытые функции
| 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 |
| const QPicture * | picture() const |
| 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 используется для отображения текста или изображения. Функциональность взаимодействия с пользователем не предоставляется. Визуальный вид метки можно настроить различными способами, и её можно использовать для указания фокусного mneмоника для другого виджета.
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 предоставляет удобный механизм для добавления mneмоника (см. QKeySequence), который переведёт фокус клавиатуры на другой виджет (называемый «другом» QLabel). Например:
QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit); В этом примере фокус клавиатуры передаётся на «друга» метки (элемент QLineEdit) при нажатии Alt+P. Если «друг» был кнопкой (наследующей от QAbstractButton), срабатывание mneмоника смоделирует щелчок по кнопке.
См. также QLineEdit, QTextEdit, QPixmap, QMovie, и Руководство по разработке графического интерфейса пользователя: Метка.
Документация свойств
alignment : Qt::Alignment
Это свойство содержит выравнивание содержимого метки.
По умолчанию содержимое метки выравнивается по левому краю и по вертикали посередине.
Функции доступа:
| Qt::Alignment | alignment() const |
| void | setAlignment(Qt::Alignment) |
См. также text.
hasSelectedText : const bool
Это свойство содержит информацию о том, выделен ли какой-либо текст.
hasSelectedText() возвращает true если часть или весь текст выделен пользователем; в противном случае возвращает false.
По умолчанию это свойство равно false.
Примечание: Для выделения текста мышкой или клавиатурой флаги textInteractionFlags метки должны включать либо TextSelectableByMouse, либо TextSelectableByKeyboard.
Это свойство было добавлено в Qt 4.7.
Функции доступа:
| 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) |
См. также alignment, margin, frameWidth(), и font().
margin : int
Это свойство содержит ширину отступа.
Отступ — это расстояние между самым внутренним пикселем рамки и самым внешним пикселем содержимого.
По умолчанию отступ равен 0.
Функции доступа:
| int | margin() const |
| void | setMargin(int) |
См. также indent.
openExternalLinks : bool
Указывает, должна ли метка QLabel автоматически открывать ссылки с помощью QDesktopServices::openUrl() вместо выдачи сигнала linkActivated().
Примечание: Для открытия ссылок с помощью мыши или клавиатуры флаги textInteractionFlags метки должны включать либо LinksAccessibleByMouse, либо LinksAccessibleByKeyboard.
Значение по умолчанию — false.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | openExternalLinks() const |
| void | setOpenExternalLinks(bool open) |
См. также textInteractionFlags().
pixmap : QPixmap
Это свойство содержит пиксель изображение метки.
Если изображение не задано, возвращается nullptr.
Установка изображения очищает любое предыдущее содержимое. Короткая ссылка, если она есть, отключается.
Функции доступа:
| const QPixmap * | pixmap() const |
| void | setPixmap(const QPixmap &) |
scaledContents : bool
Это свойство определяет, будет ли метка масштабировать содержимое для заполнения всего доступного пространства.
При включенном свойстве и отображении изображения, изображение будет масштабировано для заполнения доступного пространства.
По умолчанию это свойство равно false.
Функции доступа:
| bool | hasScaledContents() const |
| void | setScaledContents(bool) |
selectedText : const QString
Это свойство содержит выделенный текст.
Если текст не выделен, значение свойства — пустая строка.
По умолчанию это свойство содержит пустую строку.
Примечание: Для выделения текста с помощью мыши или клавиатуры флаги textInteractionFlags метки должны включать либо TextSelectableByMouse, либо TextSelectableByKeyboard.
Это свойство было добавлено в Qt 4.7.
Функции доступа:
| QString | selectedText() const |
См. также hasSelectedText().
text : QString
Это свойство содержит текст метки.
Если текст не задан, возвращается пустая строка. Установка текста очищает любое предыдущее содержимое.
Текст интерпретируется как обычный или форматированный, в зависимости от формата текста; см. setTextFormat(). Значение по умолчанию — Qt::AutoText; т. е. QLabel будет пытаться автоматически определить формат установленного текста. См. Поддерживаемый подмножество HTML для определения форматированного текста.
Если установлена короткая ссылка, её ключ mnemo обновляется из нового текста.
Обратите внимание, что QLabel хорошо подходит для отображения небольших форматированных текстовых документов, таких как небольшие документы, которые получают свои настройки документа (шрифт, цвет текста, цвет ссылки) из палитры и свойств шрифта метки. Для больших документов используйте QTextEdit в режиме только для чтения. QTextEdit также может предоставлять полосу прокрутки при необходимости.
Примечание: Эта функция включает отслеживание мыши, если text содержит форматированный текст.
Функции доступа:
| QString | text() const |
| void | setText(const QString &) |
См. также setTextFormat(), setBuddy(), и alignment.
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 4.2.
Функции доступа:
| 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.
Эта функция была добавлена в Qt 4.2.
См. также linkHovered().
[signal] void QLabel::linkHovered(const QString &link)
Этот сигнал генерируется, когда пользователь наводит указатель мыши на ссылку. URL, на который ссылается якорь, передаётся в link.
Эта функция была добавлена в Qt 4.2.
См. также linkActivated().
[slot] void QLabel::setMovie(QMovie *movie)
Устанавливает содержимое метки в movie. Любое предыдущее содержимое очищается. Метка НЕ принимает владение над фильмом.
Сокращение для друга, если оно есть, отключается.
См. также movie() и setBuddy().
[slot] void QLabel::setNum(double num)
Это перегруженная функция.
Устанавливает содержимое метки в обычный текст, содержащий текстовое представление double num. Любое предыдущее содержимое очищается. Ничего не делает, если строковое представление double совпадает с текущим содержимым метки.
Сокращение для друга, если оно есть, отключается.
См. также 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 *).
const QPicture *QLabel::picture() const
Возвращает изображение метки или nullptr, если у метки нет изображения.
См. также setPicture().
int QLabel::selectionStart() const
selectionStart() возвращает индекс первой выбранного символа в метке или -1, если текст не выбран.
Примечание: У метки должно быть установлено свойство textInteractionFlags, включающее TextSelectableByMouse или TextSelectableByKeyboard.
Эта функция была добавлена в Qt 4.7.
См. также 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().
void QLabel::setSelection(int start, int length)
Выделяет текст с позиции start и на протяжении length символов.
Примечание: Настройки textInteractionFlags метки должны включать либо TextSelectableByMouse, либо TextSelectableByKeyboard.
Эта функция была добавлена в Qt 4.7.
См. также 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-5.14/qlabel.html