Класс QLabel
Виджет QLabel предоставляет отображение текста или изображения. Подробнее...
| Заголовок: | #include <QLabel> |
| qmake: | QT += widgets |
| Наследует: | QFrame |
Свойства
|
|
- 6 свойств, унаследованных от QFrame
- 59 свойств, унаследованных от QWidget
- 1 свойство, унаследованное от QObject
Открытые функции
| QLabel(QWidget *parent = nullptr, Qt::WindowFlags f = ...) | |
| QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = ...) | |
| 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 |
- 14 открытых функций, унаследованных от QFrame
- 214 открытых функций, унаследованных от QWidget
- 31 открытых функций, унаследованных от QObject
- 14 открытых функций, унаследованных от QPaintDevice
Открытые слоты
| 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 &) |
Сигналы
| void | linkActivated(const QString &link) |
| void | linkHovered(const QString &link) |
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 5 статических открытых членов, унаследованных от QWidget
- 9 статических открытых членов, унаследованных от QObject
Переопределённые защищённые функции
| 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 |
- 4 защищённых функций, унаследованных от QFrame
- 35 защищённых функций, унаследованных от QWidget
- 9 защищённых функций, унаследованных от QObject
- 1 защищённая функция, унаследованная от QPaintDevice
Дополнительные унаследованные члены
- 4 защищённых функций, унаследованных от QFrame
- 35 защищённых функций, унаследованных от QWidget
- 9 защищённых функций, унаследованных от QObject
- 1 защищённая функция, унаследованная от QPaintDevice
- 1 защищённый слот, унаследованный от QWidget
Подробное описание
Виджет QLabel предназначен для отображения текста или изображения.
QLabel используется для отображения текста или изображения. Функциональность взаимодействия пользователя не предоставляется. Визуальный вид метки можно настроить различными способами, и её можно использовать для указания фокусной клавиши mnemonic для другого виджета.
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 предоставляет полезный механизм для добавления mnemonic (см. QKeySequence), который переведёт фокус клавиатуры на другой виджет (называемый «другом» QLabel). Например:
QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit); В этом примере фокус клавиатуры переключается на друга метки (на QLineEdit) при нажатии Alt+P. Если другом был бы кнопка (наследующая от QAbstractButton), срабатывание mnemonic эмулировало бы нажатие кнопки.
См. также QLineEdit, QTextEdit, QPixmap, QMovie и Руководство по проектированию GUI: Метка.
Документация свойств
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
Указывает, должна ли метка автоматически открывать ссылки с помощью 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.
Если помощник установлен, мнемонический ключ помощника обновляется из нового текста.
Обратите внимание, что 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(QWidget *parent = nullptr, Qt::WindowFlags f = ...)
Создаёт пустую метку.
Аргументы parent и флаги виджета f передаются конструктору QFrame.
См. также setAlignment(), setFrameStyle() и setIndent().
QLabel::QLabel(const QString &text, QWidget *parent = nullptr, Qt::WindowFlags f = ...)
Создаёт метку, отображающую текст text.
Аргументы parent и флаги виджета f передаются конструктору QFrame.
См. также setText(), setAlignment(), setFrameStyle() и setIndent().
[virtual] QLabel::~QLabel()
Уничтожает метку.
QWidget *QLabel::buddy() const
Возвращает метку-компаньона или nullptr, если метка-компаньон не установлена.
См. также setBuddy().
[override virtual protected] void QLabel::changeEvent(QEvent *ev)
Переопределено из QFrame::changeEvent().
[slot] void QLabel::clear()
Очищает содержимое метки.
[override virtual protected] void QLabel::contextMenuEvent(QContextMenuEvent *ev)
Переопределено из QWidget::contextMenuEvent().
[override virtual protected] bool QLabel::event(QEvent *e)
Переопределено из QFrame::event().
[override virtual protected] void QLabel::focusInEvent(QFocusEvent *ev)
Переопределено из QWidget::focusInEvent().
[override virtual protected] bool QLabel::focusNextPrevChild(bool next)
Переопределено из QWidget::focusNextPrevChild().
[override virtual protected] void QLabel::focusOutEvent(QFocusEvent *ev)
Переопределено из QWidget::focusOutEvent().
[override virtual] int QLabel::heightForWidth(int w) const
Переопределено из QWidget::heightForWidth().
[override virtual protected] void QLabel::keyPressEvent(QKeyEvent *ev)
Переопределено из QWidget::keyPressEvent().
[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().
[override virtual] QSize QLabel::minimumSizeHint() const
Переопределено из QWidget::minimumSizeHint().
[override virtual protected] void QLabel::mouseMoveEvent(QMouseEvent *ev)
Переопределено из QWidget::mouseMoveEvent().
[override virtual protected] void QLabel::mousePressEvent(QMouseEvent *ev)
Переопределено из QWidget::mousePressEvent().
[override virtual protected] void QLabel::mouseReleaseEvent(QMouseEvent *ev)
Переопределено из QWidget::mouseReleaseEvent().
QMovie *QLabel::movie() const
Возвращает указатель на анимацию метки или nullptr, если анимация не установлена.
См. также setMovie().
[override virtual protected] void QLabel::paintEvent(QPaintEvent *)
Переопределено из QFrame::paintEvent().
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().
[slot] void QLabel::setMovie(QMovie *movie)
Устанавливает содержимое метки в movie. Любое предыдущее содержимое очищается. Метка НЕ перенимает владение анимацией.
Сочетание клавиш компаньона, если таковое имеется, отключается.
См. также movie() и setBuddy().
[slot] void QLabel::setNum(int num)
Устанавливает содержимое метки в обычный текст, содержащий текстовое представление целого числа num. Любое предыдущее содержимое очищается. Ничего не делает, если строковое представление целого числа совпадает с текущим содержимым метки.
Сочетание клавиш компаньона, если таковое имеется, отключается.
См. также setText(), QString::setNum() и setBuddy().
[slot] void QLabel::setNum(double num)
Это перегруженная функция.
Устанавливает содержимое метки в обычный текст, содержащий текстовое представление двойного числа num. Любое предыдущее содержимое очищается. Ничего не делает, если строковое представление двойного числа совпадает с текущим содержимым метки.
Сочетание клавиш компаньона, если таковое имеется, отключается.
См. также setText(), QString::setNum() и setBuddy().
[slot] void QLabel::setPicture(const QPicture &picture)
Устанавливает содержимое метки в picture. Любое предыдущее содержимое очищается.
Если есть сокращение для друга, оно отключается.
См. также picture() и setBuddy().
void QLabel::setSelection(int start, int length)
Выделяет текст с позиции start и длиной length символов.
Примечание: Свойства textInteractionFlags метки должны включать либо TextSelectableByMouse, либо TextSelectableByKeyboard.
Эта функция была добавлена в Qt 4.7.
См. также selectedText().
[override virtual] QSize QLabel::sizeHint() const
Переопределено из QFrame::sizeHint().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qlabel.html