Spec-Zone.ru › Qt 5.13

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

Переопределённые защищённые функции

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

Подробное описание

QLabel используется для отображения текста или изображения. Функциональность взаимодействия с пользователем не предоставляется. Визуальный вид метки может быть настроен различными способами, и она может использоваться для задания фокусного мнемонического ключа для другого виджета.

Метка 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 предоставляет удобный механизм для добавления мнемоники (см. QKeySequence), которая установит фокус клавиатуры на другой виджет (называемый «партнером» метки QLabel). Например:

QLineEdit *phoneEdit = new QLineEdit(this);
QLabel *phoneLabel = new QLabel("&Phone:", this);
phoneLabel->setBuddy(phoneEdit);

В этом примере фокус клавиатуры переключается на партнера метки (поле QLineEdit) при нажатии клавиш Alt+P. Если партнёром была кнопка (наследующая от QAbstractButton), то нажатие мнемоники смоделирует нажатие кнопки.

См. также 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

Указывает, должна ли метка автоматически открывать ссылки с помощью 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(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() const.

[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.

При нажатии пользователем сочетания клавиш, указанного в этой метке, фокус клавиатуры передаётся виджету-компаньону метки.

Механизм компаньонов доступен только для меток QLabel, содержащих текст, в котором один символ предваряется амперсандом, '&'. Этот символ устанавливается в качестве сочетания клавиш. См. документацию 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.13/qlabel.html

Spec-Zone.ru

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