Spec-Zone.ru › Qt 5.15

Класс QLabel

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

Заголовок: #include <QLabel>
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(Qt::ReturnByValueConstant) const
QPixmap pixmap(Qt::ReturnByValueConstant) 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 используется для отображения текста или изображения. Функциональность взаимодействия пользователя не предоставляется. Визуальный вид метки может быть настроен различными способами, и она может использоваться для указания фокусного символа 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 и Руководство по проектированию графического интерфейса пользователя: Метка.

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

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)

См. также выравнивание, 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

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

Ранее Qt предоставлял версию pixmap(), которая возвращала растровое изображение по указателю. Эта версия теперь устарела. Чтобы сохранить совместимость со старым кодом, вы можете явно различать функцию по указателю и функцию по значению:

const QPixmap *pixmapPtr = label->pixmap();
QPixmap pixmapVal = label->pixmap(Qt::ReturnByValue);

Если вы отключите устаревшую версию, используя макрос QT_DISABLE_DEPRECATED_BEFORE, то можете опустить Qt::ReturnByValue как показано ниже:

QPixmap pixmapVal = label->pixmap();

Если растровое изображение не задано, устаревшая функция-получатель вернёт nullptr.

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

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

QPixmap pixmap(Qt::ReturnByValueConstant) 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 для определения форматированного текста.

Если "buddy" задан, сочетание клавиш для "buddy" обновляется с новым текстом.

Обратите внимание, что 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 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 *).

QPicture QLabel::picture(Qt::ReturnByValueConstant) const

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

Ранее Qt предоставлял версию picture() , которая возвращала изображение по указателю. Эта версия теперь устарела. Для сохранения совместимости со старым кодом можно явно различать функцию по указателю и функцию по значению:

const QPicture *picPtr = label->picture();
QPicture picVal = label->picture(Qt::ReturnByValue);

Если вы отключите устаревшую версию с помощью макроса QT_DISABLE_DEPRECATED_BEFORE, то можете опустить Qt::ReturnByValue , как показано ниже:

QPicture picVal = label->picture();

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

QPixmap QLabel::pixmap(Qt::ReturnByValueConstant) const

Примечание: Функция-получатель для свойства pixmap.

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

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

Spec-Zone.ru

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