Spec-Zone.ru › GTK 4.0

GtkLabel

GtkLabel — Виджет для отображения небольшого или среднего объёма текста

Функции

GtkWidget * gtk_label_new ()
void gtk_label_set_text ()
void gtk_label_set_attributes ()
void gtk_label_set_markup ()
void gtk_label_set_markup_with_mnemonic ()
void gtk_label_set_justify ()
void gtk_label_set_xalign ()
void gtk_label_set_yalign ()
void gtk_label_set_ellipsize ()
void gtk_label_set_width_chars ()
void gtk_label_set_max_width_chars ()
void gtk_label_set_wrap ()
void gtk_label_set_wrap_mode ()
void gtk_label_set_lines ()
void gtk_label_get_layout_offsets ()
guint gtk_label_get_mnemonic_keyval ()
gboolean gtk_label_get_selectable ()
const char * gtk_label_get_text ()
GtkWidget * gtk_label_new_with_mnemonic ()
void gtk_label_select_region ()
void gtk_label_set_mnemonic_widget ()
void gtk_label_set_selectable ()
void gtk_label_set_text_with_mnemonic ()
PangoAttrList * gtk_label_get_attributes ()
GtkJustification gtk_label_get_justify ()
float gtk_label_get_xalign ()
float gtk_label_get_yalign ()
PangoEllipsizeMode gtk_label_get_ellipsize ()
int gtk_label_get_width_chars ()
int gtk_label_get_max_width_chars ()
const char * gtk_label_get_label ()
PangoLayout * gtk_label_get_layout ()
gboolean gtk_label_get_wrap ()
PangoWrapMode gtk_label_get_wrap_mode ()
int gtk_label_get_lines ()
GtkWidget * gtk_label_get_mnemonic_widget ()
gboolean gtk_label_get_selection_bounds ()
gboolean gtk_label_get_use_markup ()
gboolean gtk_label_get_use_underline ()
gboolean gtk_label_get_single_line_mode ()
void gtk_label_set_label ()
void gtk_label_set_use_markup ()
void gtk_label_set_use_underline ()
void gtk_label_set_single_line_mode ()
const char * gtk_label_get_current_uri ()
void gtk_label_set_extra_menu ()
GMenuModel * gtk_label_get_extra_menu ()

Свойства

PangoAttrList * attributes Чтение / Запись
PangoEllipsizeMode ellipsize Чтение / Запись
GMenuModel * extra-menu Чтение / Запись
GtkJustification justify Чтение / Запись
char * label Чтение / Запись
int lines Чтение / Запись
int max-width-chars Чтение / Запись
guint mnemonic-keyval Чтение
GtkWidget * mnemonic-widget Чтение / Запись
gboolean selectable Чтение / Запись
gboolean single-line-mode Чтение / Запись
gboolean use-markup Чтение / Запись
gboolean use-underline Чтение / Запись
int width-chars Чтение / Запись
gboolean wrap Чтение / Запись
PangoWrapMode wrap-mode Чтение / Запись
float xalign Чтение / Запись
float yalign Чтение / Запись

Сигналы

void activate-current-link Действие
gboolean activate-link Выполнение последним
void copy-clipboard Действие
void move-cursor Действие

Действия

link.copy
link.open
selection.select-all
selection.delete
clipboard.paste
clipboard.copy
clipboard.cut
menu.popup

Типы и Значения

GtkLabel

Иерархия объектов

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkLabel

Реализованные интерфейсы

GtkLabel реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.

Файлы заголовков

#include <gtk/gtk.h>

Описание

Виджет GtkLabel отображает небольшой фрагмент текста. Как следует из названия, большинство меток используются для маркировки других виджетов, таких как GtkButton.

CSS-узлы

GtkLabel имеет единственный CSS-узел с именем label. К меткам можно применять множество стилей, таких как .title, .subtitle, .dim-label и т. д. В GtkShortcutsWindow метки используются со стилем .keycap.

Если у метки есть выделение, у неё есть дочерний узел с именем selection.

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

GtkLabel как GtkBuildable

Реализация GtkLabel интерфейса GtkBuildable поддерживает пользовательский элемент <attributes>, который поддерживает любое количество элементов <attribute>. Элемент <attribute> имеет атрибуты с именами “name“, “value“, “start“ и “end“ и позволяет задавать значения PangoAttribute для этой метки.

Пример фрагмента определения интерфейса с указанием атрибутов Pango:

Атрибуты start и end задают диапазон символов, к которому применяется атрибут Pango. Если start и end не указаны, атрибут применяется ко всему тексту. Обратите внимание, что указание диапазонов не имеет большого смысла с переводимыми атрибутами. Вместо этого используйте разметку, встроенную в переводимое содержимое.

Доступность

GtkLabel использует роль GTK_ACCESSIBLE_ROLE_LABEL.

Мемоники

Метки могут содержать «мемоники». Мемоники — это подчеркнутые символы в метке, используемые для навигации с клавиатуры. Мемоники создаются путём предоставления строки с подчёркиванием перед символом мемоника, например "_File", в функции gtk_label_new_with_mnemonic() или gtk_label_set_text_with_mnemonic().

Мемоники автоматически активируют любой активируемый виджет, в котором находится метка, например, GtkButton; если метка не находится внутри виджета-мишени мемоники, вам необходимо указать виджет-мишень метке с помощью gtk_label_set_mnemonic_widget(). Вот простой пример, где метка находится внутри кнопки:

Есть удобная функция для создания кнопок с меткой-мемоникой уже внутри:

Чтобы создать мемоник для виджета рядом с меткой, например GtkEntry, вам нужно указать метку на поле ввода с помощью gtk_label_set_mnemonic_widget():

Разметка (стилизованный текст)

Чтобы упростить форматирование текста в метке (изменение цвета, шрифтов и т. д.), текст метки может быть предоставлен в простом формате разметки.

Вот как создать метку с небольшим шрифтом:

(См. полную документацию по доступным тегам в руководстве Pango.)

Разметка, переданная в gtk_label_set_markup(), должна быть валидной; например, символы <, > и & должны быть экранированы как <, > и &. Если вы передаёте текст, полученный от пользователя, из файла или сети в gtk_label_set_markup(), вам нужно экранировать его с помощью g_markup_escape_text() или g_markup_printf_escaped().

Строки разметки — это просто удобный способ установки PangoAttrList в метке; gtk_label_set_attributes() в некоторых случаях может быть более простым способом задания атрибутов. Однако будьте осторожны; PangoAttrList может создавать проблемы с локализациями, если вы не применяете атрибуты ко всей строке (т. е. если вы не устанавливаете диапазон каждого атрибута в [0, G_MAXINT)). Причина в том, что указание start_index и end_index для PangoAttribute требует знания точной отображаемой строки, поэтому переводы могут вызвать проблемы.

Выделяемые метки

Метки можно сделать выделяемыми с помощью gtk_label_set_selectable(). Выделяемые метки позволяют пользователю копировать содержимое метки в буфер обмена. Следует делать выделяемыми только метки, содержащие информацию, которую полезно копировать, например, сообщения об ошибках.

Форматирование текста

Метка может содержать любое количество абзацев, но будет иметь проблемы с производительностью, если их количество превышает небольшое число. Абзацы разделяются символами новой строки или другими разделителями абзацев, понятными Pango.

Метки могут автоматически переносить текст, если вы вызовете gtk_label_set_wrap().

gtk_label_set_justify() определяет, как строки в метке выравниваются друг с другом. Если вы хотите установить, как метка в целом выравнивается в доступном пространстве, см. свойства “halign” и “valign”.

Свойства “width-chars” и “max-width-chars” могут использоваться для управления размещением размеров эллиптированных или переносящихся меток. Для эллиптических меток, если указано значение (и оно меньше фактического размера текста), оно используется как минимальная ширина, а фактический размер текста используется как естественная ширина метки. Для переносящихся меток, width-chars используется как минимальная ширина, если указана, а max-width-chars используется как естественная ширина. Даже если указан max-width-chars, переносящиеся метки будут переноситься повторно, чтобы использовать всю доступную ширину.

Обратите внимание, что интерпретация “width-chars” и “max-width-chars” немного изменилась с появлением управления геометрией ширины относительно высоты.

Ссылки

GTK поддерживает разметку для нажимаемых гиперссылок в дополнение к обычной разметке Pango. Разметка для ссылок заимствована из HTML, используя элемент <a> с атрибутами “href”, “title” и “class”. GTK отображает ссылки так же, как они отображаются в веб-браузерах, с цветным, подчеркнутым текстом. Атрибут “title” отображается как всплывающая подсказка для ссылки. Атрибут “class” используется как класс стиля для CSS-узла ссылки.

Пример выглядит следующим образом:

Можно реализовать пользовательскую обработку ссылок и их всплывающих подсказок с помощью сигнала “activate-link” и функции gtk_label_get_current_uri().

Функции

gtk_label_new ()

GtkWidget *
gtk_label_new (const char *str);

Создаёт новую метку с заданным текстом внутри. Вы можете передать NULL, чтобы получить виджет метки без текста.

Параметры

str

Текст метки.

[nullable]

Возвращает

новую GtkLabel

gtk_label_set_text ()

void
gtk_label_set_text (GtkLabel *self,
                    const char *str);

Устанавливает текст внутри виджета GtkLabel. Заменяет любой ранее установленный текст.

Эта функция очистит все ранее установленные сокращённые клавиши и установит свойство “use-underline” в FALSE в качестве побочного эффекта.

Эта функция установит свойство “use-markup” в FALSE в качестве побочного эффекта.

См. также: gtk_label_set_markup()

Параметры

self

a GtkLabel

str

Текст, который вы хотите установить

gtk_label_set_attributes ()

void
gtk_label_set_attributes (GtkLabel *self,
                          PangoAttrList *attrs);

Устанавливает PangoAttrList; атрибуты в списке применяются к тексту метки.

Атрибуты, установленные с помощью этой функции, будут применены и объединены с любыми другими атрибутами, ранее изменёнными с помощью свойств “use-underline” или “use-markup”. Не рекомендуется смешивать строки разметки с вручную заданными атрибутами, но если необходимо, знайте, что атрибуты будут применены к метке после разбора строки разметки.

Параметры

self

a GtkLabel

attrs

a PangoAttrList, или NULL.

[nullable]

gtk_label_set_markup ()

void
gtk_label_set_markup (GtkLabel *self,
                      const char *str);

Разбирает str, который помечен с помощью языка разметки Pango, устанавливая текст и список атрибутов метки на основе результатов разбора.

Если str представляет собой внешние данные, вам может потребоваться экранировать их с помощью g_markup_escape_text() или g_markup_printf_escaped():

label
├── [selection]
├── [link]
┊
╰── [link]

Эта функция установит свойство “use-markup” в TRUE в качестве побочного эффекта.

Если вы устанавливаете содержимое метки с помощью свойства “label”, вы также должны убедиться, что установили свойство “use-markup” соответствующим образом.

См. также: gtk_label_set_text()

Параметры

self

a GtkLabel

str

строка разметки (см. формат разметки Pango)

gtk_label_set_markup_with_mnemonic ()

void
gtk_label_set_markup_with_mnemonic (GtkLabel *self,
                                    const char *str);

Разбирает str, который помечен с помощью языка разметки Pango, устанавливая текст и список атрибутов метки на основе результатов разбора. Если символы в str предваряются нижним подчёркиванием, они подчёркиваются, что указывает на то, что они представляют собой сокращённую клавишу, называемую мнемоникой.

Сокращённую клавишу можно использовать для активации другого виджета, выбранного автоматически, или явно с помощью gtk_label_set_mnemonic_widget().

Параметры

self

a GtkLabel

str

строка разметки (см. формат разметки Pango)

gtk_label_set_justify ()

void
gtk_label_set_justify (GtkLabel *self,
                       GtkJustification jtype);

Устанавливает выравнивание строк в тексте метки относительно друг друга. GTK_JUSTIFY_LEFT является значением по умолчанию при первом создании виджета с помощью gtk_label_new(). Если вы хотите установить выравнивание метки в целом, используйте gtk_widget_set_halign() вместо этого. gtk_label_set_justify() не оказывает никакого влияния на метки, содержащие только одну строку.

Параметры

self

a GtkLabel

jtype

a GtkJustification

gtk_label_set_xalign ()

void
gtk_label_set_xalign (GtkLabel *self,
                      float xalign);

Устанавливает свойство “xalign” для label .

Параметры

self

a GtkLabel

xalign

новое значение xalign, от 0 до 1

gtk_label_set_yalign ()

void
gtk_label_set_yalign (GtkLabel *self,
                      float yalign);

Устанавливает свойство “yalign” для label .

Параметры

self

a GtkLabel

yalign

новое значение yalign, от 0 до 1

gtk_label_set_ellipsize ()

void
gtk_label_set_ellipsize (GtkLabel *self,
                         PangoEllipsizeMode mode);

Устанавливает режим, используемый для обрезания текста (добавление многоточия: "...") в случае, если для отображения всей строки недостаточно места.

Параметры

self

a GtkLabel

mode

a PangoEllipsizeMode

gtk_label_set_width_chars ()

void
gtk_label_set_width_chars (GtkLabel *self,
                           int n_chars);

Устанавливает желаемую ширину в символах label в n_chars .

Параметры

self

a GtkLabel

n_chars

новая желаемая ширина в символах.

gtk_label_set_max_width_chars ()

void
gtk_label_set_max_width_chars (GtkLabel *self,
                               int n_chars);

Устанавливает желаемую максимальную ширину в символах для label в n_chars .

Параметры

self

объект GtkLabel

n_chars

новая желаемая максимальная ширина в символах.

gtk_label_set_wrap ()

void
gtk_label_set_wrap (GtkLabel *self,
                    gboolean wrap);

Переключает перенос строк в виджете GtkLabel. TRUE позволяет изменять строки, если текст выходит за пределы размеров виджета. FALSE позволяет обрезать текст по краю виджета, если он выходит за пределы его размеров.

Обратите внимание, что установка переноса строк в значение TRUE не приводит к переносу строк по ширине родительского контейнера, потому что виджеты GTK концептуально не могут зависеть от размера родительского контейнера. Для метки, которая переносит строки в определенной позиции, установите ширину метки с помощью gtk_widget_set_size_request().

Параметры

self

объект GtkLabel

wrap

настройка

gtk_label_set_wrap_mode ()

void
gtk_label_set_wrap_mode (GtkLabel *self,
                         PangoWrapMode wrap_mode);

Если перенос строк включён (см. gtk_label_set_wrap()), это управляет тем, как выполняется перенос строк. По умолчанию используется значение PANGO_WRAP_WORD, что означает перенос по границам слов.

Параметры

self

объект GtkLabel

wrap_mode

режим переноса строк

gtk_label_set_lines ()

void
gtk_label_set_lines (GtkLabel *self,
                     int lines);

Устанавливает количество строк, до которого должен быть ограничен эллиптизированный, переносящийся по строкам, ярлык. Это не имеет эффекта, если ярлык не переносит строки или не эллиптизирован. Установите это значение в -1, если вы не хотите ограничивать количество строк.

Параметры

self

объект GtkLabel

lines

желаемое количество строк или -1

gtk_label_get_layout_offsets ()

void
gtk_label_get_layout_offsets (GtkLabel *self,
                              int *x,
                              int *y);

Получает координаты, где ярлык нарисует PangoLayout, представляющий текст в ярлыке; полезно для преобразования событий мыши в координаты внутри PangoLayout, например, чтобы выполнить какое-либо действие, если щелкнута какая-то часть ярлыка. Помните, что при использовании функций PangoLayout необходимо переводить значения в пиксели и обратно, используя PANGO_PIXELS() или PANGO_SCALE.

Параметры

self

объект GtkLabel

x

место для хранения смещения X макета или NULL.

[out][optional]

y

место для хранения смещения Y макета или NULL.

[out][optional]

gtk_label_get_mnemonic_keyval ()

guint
gtk_label_get_mnemonic_keyval (GtkLabel *self);

Если для ярлыка задан мнемонический ключ, эта функция возвращает keyval, используемый для мнемонического ускорителя. Если мнемонический ключ не задан, возвращается GDK_KEY_VoidSymbol.

Параметры

self

объект GtkLabel

Возвращает

GDK keyval, используемый для ускорителей, или GDK_KEY_VoidSymbol

gtk_label_get_selectable ()

gboolean
gtk_label_get_selectable (GtkLabel *self);

Получает значение, установленное с помощью gtk_label_set_selectable().

Параметры

self

объект GtkLabel

Возвращает

TRUE если пользователь может скопировать текст из ярлыка

gtk_label_get_text ()

const char *
gtk_label_get_text (GtkLabel *self);

Извлекает текст из виджета метки, как он отображается на экране. Это не включает встроенные подчеркивания, указывающие на мнемонические обозначения или разметку Pango. (См. gtk_label_get_label())

Параметры

self

объект GtkLabel

Возвращает

текст в виджете метки. Это внутренняя строка, используемая меткой, и её нельзя изменять.

gtk_label_new_with_mnemonic ()

GtkWidget *
gtk_label_new_with_mnemonic (const char *str);

Создаёт новую метку GtkLabel, содержащую текст в str .

Если символы в str предваряются подчёркиванием, они подчеркиваются. Если вам нужен буквенный символ подчёркивания в метке, используйте '__' (два подчёркивания). Первый подчеркнутый символ представляет собой клавишный ускоритель, называемый мнемоникой. Мнемоническую клавишу можно использовать для активации другого виджета, выбранного автоматически или явно с помощью gtk_label_set_mnemonic_widget().

Если gtk_label_set_mnemonic_widget() не вызывается, то первым активируемым предком GtkLabel будет выбран виджет мнемоники. Например, если метка находится внутри кнопки или пункта меню, кнопка или пункт меню автоматически станут виджетом мнемоники и будут активироваться с помощью мнемоники.

Параметры

str

Текст метки, где перед мнемоническим символом стоит подчёркивание.

[nullable]

Возвращает

новую метку GtkLabel

gtk_label_select_region ()

void
gtk_label_select_region (GtkLabel *self,
                         int start_offset,
                         int end_offset);

Выделяет диапазон символов в метке, если метка разрешает выделение. См. gtk_label_set_selectable(). Если метка не разрешает выделение, эта функция не оказывает влияния. Если start_offset или end_offset равны -1, то будет использоваться конец метки.

Параметры

self

объект GtkLabel

start_offset

начальный смещение (в символах, а не байтах)

end_offset

конечное смещение (в символах, а не байтах)

gtk_label_set_mnemonic_widget ()

void
gtk_label_set_mnemonic_widget (GtkLabel *self,
                               GtkWidget *widget);

Если метка настроена так, что имеет мнемонический ключ (например, с помощью gtk_label_set_markup_with_mnemonic(), gtk_label_set_text_with_mnemonic(), gtk_label_new_with_mnemonic() или свойства «use_underline»), метка может быть связана с виджетом, являющимся целевым для мнемоники. Когда метка находится внутри виджета (например, в GtkButton или вкладке GtkNotebook), она автоматически связывается с соответствующим виджетом, но иногда (например, когда целевым является GtkEntry рядом с меткой) вам нужно установить её явно с помощью этой функции.

Целевой виджет будет ускорен путём выдачи сигнала GtkWidget::mnemonic-activate. Обработчик по умолчанию для этого сигнала активирует виджет, если нет коллизий мнемоники, и переключает фокус между конфликтующими виджетами в противном случае.

Параметры

self

объект GtkLabel

widget

целевой GtkWidget, или NULL для отмены связи.

[nullable]

gtk_label_set_selectable ()

void
gtk_label_set_selectable (GtkLabel *self,
                          gboolean setting);

Метки, разрешающие выделение, позволяют пользователю выделять текст из метки для копирования и вставки.

Параметры

self

объект GtkLabel

setting

TRUE для разрешения выделения текста в метке

gtk_label_set_text_with_mnemonic ()

void
gtk_label_set_text_with_mnemonic (GtkLabel *self,
                                  const char *str);

Устанавливает текст метки из строки str . Если символы в str предваряются подчёркиванием, они подчёркиваются, указывая, что они представляют мнемонический ключ. Мнемонический ключ может быть использован для активации другого виджета, выбранного автоматически, или явно с помощью gtk_label_set_mnemonic_widget().

Параметры

self

объект GtkLabel

str

строка

gtk_label_get_attributes ()

PangoAttrList *
gtk_label_get_attributes (GtkLabel *self);

Получает список атрибутов, установленных для метки с помощью gtk_label_set_attributes(), если таковые имеются. Эта функция не отображает атрибуты, полученные из разметки метки (см. gtk_label_set_markup()). Если вы хотите получить эффективные атрибуты метки, используйте pango_layout_get_attribute (gtk_label_get_layout (self)).

Параметры

self

объект GtkLabel

Возвращает

список атрибутов или NULL если не было установлено ни одного.

[nullable][transfer none]

gtk_label_get_justify ()

GtkJustification
gtk_label_get_justify (GtkLabel *self);

Возвращает выравнивание метки. См. gtk_label_set_justify().

Параметры

self

объект GtkLabel

Возвращает

GtkJustification

gtk_label_get_xalign ()

float
gtk_label_get_xalign (GtkLabel *self);

Получает свойство “xalign” для label .

Параметры

self

объект GtkLabel

Возвращает

значение свойства xalign

gtk_label_get_yalign ()

float
gtk_label_get_yalign (GtkLabel *self);

Получает свойство “yalign” для label .

Параметры

self

объект GtkLabel

Возвращает

значение свойства yalign

gtk_label_get_ellipsize ()

PangoEllipsizeMode
gtk_label_get_ellipsize (GtkLabel *self);

Возвращает позицию обрезания текста метки. См. gtk_label_set_ellipsize().

Параметры

self

объект GtkLabel

Возвращает

PangoEllipsizeMode

gtk_label_get_width_chars ()

int
gtk_label_get_width_chars (GtkLabel *self);

Возвращает желаемую ширину label в символах. См. gtk_label_set_width_chars().

Параметры

self

объект GtkLabel

Возвращает

ширину метки в символах.

gtk_label_get_max_width_chars ()

int
gtk_label_get_max_width_chars (GtkLabel *self);

Возвращает желаемую максимальную ширину label в символах. См. gtk_label_set_width_chars().

Параметры

self

объект GtkLabel

Возвращает

максимальную ширину метки в символах.

gtk_label_get_label ()

const char *
gtk_label_get_label (GtkLabel *self);

Получает текст виджета метки, включая любые вложенные подчёркивания, указывающие на мнемоники, и разметку Pango. (См. gtk_label_get_text()).

Параметры

self

объект GtkLabel

Возвращает

текст виджета метки. Эта строка принадлежит виджету и не должна изменяться или освобождаться.

gtk_label_get_layout ()

PangoLayout *
gtk_label_get_layout (GtkLabel *self);

Получает PangoLayout, используемый для отображения метки. Макет полезен, например, для преобразования позиций текста в пиксельные позиции в сочетании с gtk_label_get_layout_offsets(). Возвращаемый макет принадлежит label, поэтому вызывающий его не должен освобождать. label может в любое время пересоздать свой макет, поэтому его следует считать только для чтения.

Параметры

self

a GtkLabel

Возвращаемое значение

the PangoLayout для этой метки.

[transfer none]

gtk_label_get_wrap ()

gboolean
gtk_label_get_wrap (GtkLabel *self);

Возвращает значение, указывающее, автоматически ли происходит перенос строк в метке. См. gtk_label_set_wrap().

Параметры

self

a GtkLabel

Возвращаемое значение

TRUE если строки метки автоматически переносятся.

gtk_label_get_wrap_mode ()

PangoWrapMode
gtk_label_get_wrap_mode (GtkLabel *self);

Возвращает режим переноса строк, используемый меткой. См. gtk_label_set_wrap_mode().

Параметры

self

a GtkLabel

Возвращаемое значение

TRUE если строки метки автоматически переносятся.

gtk_label_get_lines ()

int
gtk_label_get_lines (GtkLabel *self);

Получает количество строк, до которых должна быть ограничена метка с обрезкой и переносом строк. См. gtk_label_set_lines().

Параметры

self

a GtkLabel

Возвращаемое значение

Количество строк

gtk_label_get_mnemonic_widget ()

GtkWidget *
gtk_label_get_mnemonic_widget (GtkLabel *self);

Извлекает целевой элемент для мнемоники (горячей клавиши) этой метки. См. gtk_label_set_mnemonic_widget().

Параметры

self

a GtkLabel

Возвращаемое значение

целевую метку, или NULL если не задана и используется алгоритм по умолчанию.

[nullable][transfer none]

gtk_label_get_selection_bounds ()

gboolean
gtk_label_get_selection_bounds (GtkLabel *self,
                                int *start,
                                int *end);

Получает выбранный диапазон символов в метке, возвращает TRUE если выделения нет.

Параметры

self

a GtkLabel

start

место назначения для начала выделения, как смещение символа.

[out]

end

место назначения для конца выделения, как смещение символа.

[out]

Возвращаемое значение

TRUE если выделение не пустое

gtk_label_get_use_markup ()

gboolean
gtk_label_get_use_markup (GtkLabel *self);

Возвращает значение, указывающее, интерпретируется ли текст метки как разметка с помощью языка разметки Pango. См. gtk_label_set_use_markup().

Параметры

self

a GtkLabel

Возвращаемое значение

TRUE если текст метки будет проанализирован на предмет разметки.

gtk_label_get_use_underline ()

gboolean
gtk_label_get_use_underline (GtkLabel *self);

Возвращает значение, указывающее, является ли встроенное подчеркивание в метке указанием мнемоники. См. gtk_label_set_use_underline().

Параметры

self

a GtkLabel

Возвращаемое значение

TRUE если встроенное подчеркивание в метке указывает на мнемонику.

gtk_label_get_single-line-mode ()

gboolean
gtk_label_get_single_line_mode (GtkLabel *self);

Возвращает значение, указывающее, находится ли метка в режиме одной строки.

Параметры

self

a GtkLabel

Возвращаемое значение

TRUE когда метка находится в режиме одной строки.

gtk_label_set_label ()

void
gtk_label_set_label (GtkLabel *self,
                     const char *str);

Устанавливает текст метки. Метка интерпретируется как включающая встроенные подчеркивания и/или разметку Pango в зависимости от значений свойств “use-underline” и “use-markup”.

Параметры

self

a GtkLabel

str

новый текст для метки

gtk_label_set_use_markup ()

void
gtk_label_set_use_markup (GtkLabel *self,
                          gboolean setting);

Устанавливает, содержит ли текст метки разметку на языке разметки текста Pango. См. gtk_label_set_markup().

Параметры

self

a GtkLabel

setting

TRUE если текст метки должен быть проанализирован на предмет разметки.

gtk_label_set_use_underline ()

void
gtk_label_set_use_underline (GtkLabel *self,
                             gboolean setting);

Если true, подчеркивание в тексте указывает, что следующий символ должен использоваться для мнемоники.

Параметры

self

a GtkLabel

setting

TRUE если подчеркивания в тексте указывают на мнемоники

gtk_label_set_single-line-mode ()

void
gtk_label_set_single_line_mode (GtkLabel *self,
                                gboolean single_line_mode);

Устанавливает значение, указывающее, находится ли метка в режиме одной строки.

Параметры

self

a GtkLabel

single_line_mode

TRUE если метка должна быть в режиме одной строки

gtk_label_get_current_uri ()

const char *
gtk_label_get_current_uri (GtkLabel *self);

Возвращает URI для текущей активной ссылки в метке. Активная ссылка — это ссылка под указателем мыши или, в случае с выбором ссылок в метке, ссылка, в которой в данный момент находится текстовый курсор.

Эта функция предназначена для использования в обработчике “activate-link” или в обработчике “query-tooltip”.

Параметры

self

a GtkLabel

Возвращает

текущий активный URI или NULL если такового нет. Строка принадлежит GTK и не должна освобождаться или изменяться.

[nullable]

gtk_label_set_extra_menu ()

void
gtk_label_set_extra_menu (GtkLabel *self,
                          GMenuModel *model);

Устанавливает модель меню для добавления при построении контекстного меню для label.

Параметры

self

a GtkLabel

model

a GMenuModel.

[allow-none]

gtk_label_get_extra_menu ()

GMenuModel *
gtk_label_get_extra_menu (GtkLabel *self);

Получает модель меню, установленную с помощью gtk_label_set_extra_menu().

Параметры

self

a GtkLabel

Возвращает

модель меню.

[transfer none][nullable]

Типы и значения

GtkLabel

typedef struct _GtkLabel GtkLabel;

Подробное описание свойств

Свойство “attributes”

  “attributes”               PangoAttrList *

Список атрибутов стиля, применяемых к тексту метки.

Владелец: GtkLabel

Флаги: Чтение / Запись

Свойство “ellipsize”

  “ellipsize”                PangoEllipsizeMode

Предпочтительное место для обрезки строки, если метка не имеет достаточно места для отображения всей строки, указано как PangoEllipsizeMode.

Обратите внимание, что установка этого свойства на значение, отличное от PANGO_ELLIPSIZE_NONE, влечет за собой побочный эффект: метка запрашивает только необходимое пространство для отображения многоточия «…». В частности, это означает, что обрезка меток плохо работает во вкладках записных книжек, если свойство расширения вкладки GtkNotebook не установлено в TRUE. Другие способы установки ширины метки — gtk_widget_set_size_request() и gtk_label_set_width_chars().

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: PANGO_ELLIPSIZE_NONE

Свойство “extra-menu”

  “extra-menu”               GMenuModel *

Модель меню, содержимое которого будет добавлено в контекстное меню.

Владелец: GtkLabel

Флаги: Чтение / Запись

Свойство “justify”

  “justify”                  GtkJustification

Выравнивание строк в тексте метки относительно друг друга. Это НЕ влияет на выравнивание метки в её выделенной области. См. GtkLabel:xalign для этого.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: GTK_JUSTIFY_LEFT

Свойство “label”

  “label”                    char *

Содержание метки.

Если строка содержит разметку Pango XML, вам необходимо установить свойство “use-markup” в значение TRUE, чтобы метка отобразила атрибуты разметки. См. также gtk_label_set_markup() для удобной функции, которая одновременно устанавливает это свойство и свойство “use-markup”.

Если строка содержит подчеркивания, действующие как мнемоники, вам необходимо установить свойство “use-underline” в значение TRUE, чтобы метка отобразила их.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: ""

Свойство “lines”

  “lines”                    int

Количество строк, до которых должна быть ограничена обрезка и перенос строк для метки. Это свойство не имеет эффекта, если метка не переносит строки или не обрезает их. Установите это свойство в -1, если вы не хотите ограничивать количество строк.

Владелец: GtkLabel

Флаги: Чтение / Запись

Допустимые значения: >= -1

Значение по умолчанию: -1

Свойство “max-width-chars”

  “max-width-chars”          int

Желаемая максимальная ширина метки в символах. Если это свойство установлено в -1, ширина будет вычисляться автоматически.

См. раздел по расположению текста для получения подробной информации о том, как “width-chars” и “max-width-chars” определяют ширину обрезки и переноса строк меток.

Владелец: GtkLabel

Флаги: Чтение / Запись

Допустимые значения: >= -1

Значение по умолчанию: -1

Свойство “mnemonic-keyval”

  “mnemonic-keyval”          guint

Мнемонический акселератор клавиши для этой метки.

Владелец: GtkLabel

Флаги: Чтение

Значение по умолчанию: 16777215

Свойство “mnemonic-widget”

  “mnemonic-widget”          GtkWidget *

Виджет, который будет активирован при нажатии мнемонической клавиши метки.

Владелец: GtkLabel

Флаги: Чтение / Запись

Свойство “selectable”

  “selectable”               gboolean

Возможность выделения текста метки с помощью мыши.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “single-line-mode”

  “single-line-mode”         gboolean

Режим отображения метки в одной строке. В режиме одной строки высота метки не зависит от фактического текста, она всегда устанавливается в высоту восходящей и нисходящей частей шрифта. Это может быть преимуществом в ситуациях, когда перерасчет размера метки из-за изменений текста был бы отвлекающим, например, в строке состояния.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “use-markup”

  “use-markup”               gboolean

Текст метки содержит разметку XML. См. pango_parse_markup().

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “use-underline”

  “use-underline”            gboolean

При установке подчеркивание в тексте указывает, что следующий символ должен использоваться в качестве мнемонической клавиши.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “width-chars”

  “width-chars”              int

Желаемая ширина метки в символах. Если это свойство установлено в -1, ширина будет вычисляться автоматически.

См. раздел по расположению текста для получения подробной информации о том, как “width-chars” и “max-width-chars” определяют ширину обрезки и переноса строк меток.

Владелец: GtkLabel

Флаги: Чтение / Запись

Допустимые значения: >= -1

Значение по умолчанию: -1

Свойство “wrap”

  “wrap”                     gboolean

Если установлено, строки переносятся, если текст становится слишком широким.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “wrap-mode”

  “wrap-mode”                PangoWrapMode

Если перенос строк включен (см. свойство “wrap”), это свойство управляет способом переноса строк. Значение по умолчанию — PANGO_WRAP_WORD, что означает перенос по границам слов.

Владелец: GtkLabel

Флаги: Чтение / Запись

Значение по умолчанию: PANGO_WRAP_WORD

Свойство “xalign”

  “xalign”                   float

Свойство xalign определяет горизонтальное выравнивание текста метки внутри выделенной области метки. Сравните это с “halign”, которое определяет, как выделенная область метки позиционируется в доступном для метки пространстве.

Владелец: GtkLabel

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0.5

Свойство “yalign”

  “yalign”                   float

Свойство yalign определяет вертикальное выравнивание текста метки внутри выделенной области метки. Сравните это с “valign”, которое определяет, как выделенная область метки позиционируется в доступном для метки пространстве.

Владелец: GtkLabel

Флаги: Чтение / Запись

Допустимые значения: [0,1]

Значение по умолчанию: 0.5

Подробности сигналов

Сигнал “activate-current-link”

void
user_function (GtkLabel *self,
               gpointer  user_data)

Сигнал сочетания клавиш, который генерируется при активации ссылки в метке.

Приложения также могут генерировать этот сигнал с g_signal_emit_by_name(), если им нужно программно управлять активацией URI.

По умолчанию для этого сигнала используются все варианты клавиши Enter.

Параметры

self

Метка, в которой был сгенерирован сигнал

user_data

Данные пользователя, заданные при подключении обработчика сигнала.

Флаги: Действие

Сигнал “activate-link”

gboolean
user_function (GtkLabel *self,
               char     *uri,
               gpointer  user_data)

Сигнал, который генерируется для активации URI. Приложения могут подключиться к нему, чтобы переопределить стандартное поведение, которое заключается в вызове gtk_show_uri().

Параметры

self

Метка, в которой был сгенерирован сигнал

uri

URI, который активируется

user_data

Данные пользователя, заданные при подключении обработчика сигнала.

Возвращаемое значение

TRUE если ссылка активирована

Флаги: Выполнение последним

Сигнал “copy-clipboard”

void
user_function (GtkLabel *self,
               gpointer  user_data)

Сигнал ::copy-clipboard — это сигнал сочетания клавиш, который генерируется для копирования выделения в буфер обмена.

По умолчанию для этого сигнала используется сочетание Ctrl-c.

Параметры

self

объект, получивший сигнал

user_data

Данные пользователя, заданные при подключении обработчика сигнала.

Флаги: Действие

Сигнал “move-cursor”

void
user_function (GtkLabel       *entry,
               GtkMovementStep step,
               int             count,
               gboolean        extend_selection,
               gpointer        user_data)

Сигнал ::move-cursor — это сигнал сочетания клавиш, который генерируется при начале перемещения курсора. Если курсор не отображается в entry, этот сигнал вызывает перемещение области просмотра.

Приложения не должны подключаться к нему, но могут генерировать его с g_signal_emit_by_name(), если им нужно программно управлять курсором.

По умолчанию для этого сигнала существуют два варианта: вариант с модификатором Shift расширяет выделение, вариант без модификатора Shift — нет. Перечислить все комбинации клавиш здесь слишком сложно.

  • Стрелки перемещают курсор на один символ/строку

  • Комбинации Ctrl+стрелки перемещают курсор на слово/абзац

  • Клавиши Home/End перемещают курсор в начало/конец буфера

Параметры

entry

объект, получивший сигнал

step

размер шага перемещения, как GtkMovementStep

count

количество единиц step для перемещения

extend_selection

TRUE если перемещение должно расширить выделение

user_data

Данные пользователя, заданные при подключении обработчика сигнала.

Флаги: Действие

Подробности действий

Действие “link.copy”

Копирует ссылку в буфер обмена при активации ссылки в метке.

Действие “link.open”

Открывает ссылку при активации ссылки в метке.

Действие “selection.select-all”

Выделяет весь текст, если метка позволяет выделение.

Действие “selection.delete”

Ничего не делает, так как текст в метках нельзя удалить.

Действие “clipboard.paste”

Ничего не делает, так как текст в метках нельзя редактировать.

Действие “clipboard.copy”

Копирует текст в буфер обмена.

Действие “clipboard.cut”

Ничего не делает, так как текст в метках нельзя удалить.

Действие “menu.popup”

Открывает контекстное меню.

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkLabel.html

Spec-Zone.ru

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