Spec-Zone.ru › Qt 5.14

Класс 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
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)
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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