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