GtkLabel
GtkLabel — Виджет, отображающий небольшое или среднее количество текста
Функции
Свойства
| gdouble | угол | Чтение/Запись |
| PangoAttrList * | атрибуты | Чтение/Запись |
| gint | позиция курсора | Чтение |
| PangoEllipsizeMode | обрезание | Чтение/Запись |
| GtkJustification | выравнивание | Чтение/Запись |
| gchar * | метка | Чтение/Запись |
| gint | строки | Чтение/Запись |
| gint | макс. ширина символов | Чтение/Запись |
| guint | мнемонический ключ | Чтение |
| GtkWidget * | мнемонический виджет | Чтение/Запись |
| gchar * | шаблон | Запись |
| gboolean | выделяемый | Чтение/Запись |
| gint | граница выделения | Чтение |
| gboolean | режим одной строки | Чтение/Запись |
| gboolean | отслеживание посещённых ссылок | Чтение/Запись |
| gboolean | использовать разметку | Чтение/Запись |
| gboolean | использовать подчеркивание | Чтение/Запись |
| gint | ширина символов | Чтение/Запись |
| gboolean | переносить | Чтение/Запись |
| PangoWrapMode | режим переноса | Чтение/Запись |
| gfloat | выравнивание по горизонтали | Чтение/Запись |
| gfloat | выравнивание по вертикали | Чтение/Запись |
Сигналы
Типы и значения
| структура | GtkLabel |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkMisc ╰── GtkLabel ╰── GtkAccelLabel
Реализованные интерфейсы
GtkLabel реализует AtkImplementorIface и GtkBuildable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkLabel отображает небольшой объём текста. Как следует из названия, большинство меток используются для маркировки других виджетов, таких как GtkButton, GtkMenuItem или GtkComboBox.
CSS-узлы
GtkLabel имеет один CSS-узел с именем label. К меткам можно применять множество стилей, таких как .title, .subtitle, .dim-label и т.д. В GtkShortcutsWindow метки используются со стилем .keycap.
Если метка имеет выделение, у неё появляется поднода с именем selection.
Если метка содержит ссылки, для каждой ссылки имеется отдельный поднода. Эти подноды содержат информацию о ссылке или её посещении в зависимости от того, была ли она посещена.
GtkLabel как GtkBuildable
Реализация GtkLabel интерфейса GtkBuildable поддерживает пользовательский элемент <attributes>, который поддерживает любое количество элементов <attribute>. Элемент <attribute> имеет атрибуты «name», «value», «start» и «end» и позволяет задавать значения PangoAttribute для этой метки.
Пример фрагмента определения пользовательского интерфейса, задающего атрибуты Pango:
Атрибуты start и end задают диапазон символов, к которым применяется атрибут Pango. Если start и end не заданы, атрибут применяется ко всему тексту. Обратите внимание, что задание диапазонов не имеет особого смысла для переводимых атрибутов. Вместо этого используйте разметку, встроенную в переводимое содержимое.
Мемоники
Метки могут содержать «мемоники». Мемоники — это подчёркнутые символы в метке, используемые для навигации с клавиатуры. Мемоники создаются путём предоставления строки с подчёркиванием перед символом мемоники, например, "_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_line_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” несколько изменилась с введением управления геометрией «ширина-высота».
Ссылки
С версии 2.18 GTK+ поддерживает разметку для нажатия на гиперссылки в дополнение к обычной разметке Pango. Разметка для ссылок заимствована из HTML, используя <a>, с атрибутами «href» и «title». GTK+ отображает ссылки так же, как они отображаются в веб-браузерах, с цветным, подчеркнутым текстом. Атрибут «title» отображается как всплывающая подсказка на ссылке.
Пример выглядит так:
Можно реализовать обработку нажатий на ссылки и их всплывающие подсказки с помощью сигнала “activate-link” и функции gtk_label_get_current_uri().
Функции
gtk_label_new ()
GtkWidget *
gtk_label_new (const gchar *str); Создаёт новый ярлык с заданным текстом внутри. Вы можете передать NULL, чтобы получить виджет пустого ярлыка.
Параметры
строка | Текст ярлыка. | [allow-none] |
Возвращаемое значение
новый GtkLabel
gtk_label_set_text ()
void gtk_label_set_text (GtkLabel *label,const gchar *str);
Устанавливает текст внутри виджета GtkLabel. Заменяет любой ранее установленный текст.
Эта функция очистит любые ранее установленные мнемонические сочетания клавиш и установит свойство “use-underline” в FALSE в качестве побочного эффекта.
Эта функция установит свойство “use-markup” в FALSE в качестве побочного эффекта.
См. также: gtk_label_set_markup()
Параметры
ярлык | объект GtkLabel | |
строка | Текст, который вы хотите установить |
gtk_label_set_attributes ()
void gtk_label_set_attributes (GtkLabel *label,PangoAttrList *attrs);
Устанавливает PangoAttrList; атрибуты в списке применяются к тексту ярлыка.
Атрибуты, установленные с помощью этой функции, будут применены и объединены с любыми другими атрибутами, ранее установленные с помощью свойств “use-underline” или “use-markup”. Хотя не рекомендуется смешивать строки разметки с вручную заданными атрибутами, если вы это сделаете, знайте, что атрибуты будут применены к ярлыку после разбора строки разметки.
Параметры
ярлык | объект GtkLabel | |
атрибуты | список PangoAttrList, или | [allow-none] |
gtk_label_set_markup ()
void gtk_label_set_markup (GtkLabel *label,const gchar *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()
Параметры
ярлык | объект GtkLabel | |
строка | строка разметки (см. формат разметки Pango) |
gtk_label_set_markup_with_mnemonic ()
void gtk_label_set_markup_with_mnemonic (GtkLabel *label,const gchar *str);
Разбирает str, который помечен разметкой языка Pango, устанавливая текст ярлыка и список атрибутов на основе результатов разбора. Если символы в str предваряются подчёркиванием, они подчёркиваются, указывая, что они представляют собой сочетание клавиш, называемое мнемоником.
Ключ мнемоника может использоваться для активации другого виджета, выбранного автоматически, или явно с помощью gtk_label_set_mnemonic_widget().
Параметры
ярлык | объект GtkLabel | |
строка | строка разметки (см. формат разметки Pango) |
gtk_label_set_pattern ()
void gtk_label_set_pattern (GtkLabel *label,const gchar *pattern);
Образец подчёркиваний, который вы хотите под существующим текстом внутри виджета GtkLabel. Например, если текущий текст ярлыка «FooBarBaz», передача шаблона «___ ___» подчёркнет «Foo» и «Baz», но не «Bar».
Параметры
ярлык | Объект GtkLabel, которому вы хотите установить шаблон. | |
шаблон | Шаблон, как описано выше. |
gtk_label_set_justify ()
void gtk_label_set_justify (GtkLabel *label,GtkJustification jtype);
Устанавливает выравнивание строк в тексте ярлыка относительно друг друга. GTK_JUSTIFY_LEFT является значением по умолчанию при первом создании виджета с помощью gtk_label_new(). Если вы хотите установить выравнивание всего ярлыка, используйте gtk_widget_set_halign() вместо этого. gtk_label_set_justify() не влияет на ярлыки, содержащие только одну строку.
Параметры
ярлык | объект GtkLabel | |
тип_выравнивания | Перечисление GtkJustification |
gtk_label_set_yalign ()
void gtk_label_set_yalign (GtkLabel *label,gfloat yalign);
Устанавливает свойство “yalign” для label.
Параметры
label | a GtkLabel | |
yalign | новое значение yalign, между 0 и 1 |
С момента: 3.16
gtk_label_set_ellipsize ()
void gtk_label_set_ellipsize (GtkLabel *label,PangoEllipsizeMode mode);
Устанавливает режим обрезки текста (добавление многоточия: "...") в случае, если для рендеринга всей строки недостаточно места.
Параметры
label | a GtkLabel | |
mode |
С момента: 2.6
gtk_label_set_width_chars ()
void gtk_label_set_width_chars (GtkLabel *label,gint n_chars);
Устанавливает желаемую ширину в символах для label в n_chars.
Параметры
label | a GtkLabel | |
n_chars | новая желаемая ширина в символах. |
С момента: 2.6
gtk_label_set_max_width_chars ()
void gtk_label_set_max_width_chars (GtkLabel *label,gint n_chars);
Устанавливает желаемую максимальную ширину в символах для label в n_chars.
Параметры
label | a GtkLabel | |
n_chars | новая желаемая максимальная ширина в символах. |
С момента: 2.6
gtk_label_set_line_wrap ()
void gtk_label_set_line_wrap (GtkLabel *label,gboolean wrap);
Включает или выключает перенос строк в виджете GtkLabel. TRUE приводит к переносу строк, если текст превышает размеры виджета. FALSE позволяет обрезать текст по краю виджета, если он превышает размеры виджета.
Обратите внимание, что установка переноса строк в значение TRUE не приводит к переносу строки по ширине родительского контейнера, так как виджеты GTK+ концептуально не могут сделать свои требования зависимыми от размера родительского контейнера. Для метки, которая переносит строку в определённой позиции, установите ширину метки с помощью gtk_widget_set_size_request().
Параметры
label | a GtkLabel | |
wrap | установка |
gtk_label_set_line_wrap_mode ()
void gtk_label_set_line_wrap_mode (GtkLabel *label,PangoWrapMode wrap_mode);
Если перенос строк включён (см. gtk_label_set_line_wrap()), это управляет тем, как происходит перенос строк. По умолчанию используется PANGO_WRAP_WORD, что означает перенос по границам слов.
Параметры
label | a GtkLabel | |
wrap_mode | режим переноса строк |
С момента: 2.10
gtk_label_set_lines ()
void gtk_label_set_lines (GtkLabel *label,gint lines);
Устанавливает количество строк, до которого следует ограничивать обрёзанную, переносящую строку метку. Это не имеет эффекта, если метка не переносит строки или не обрезается. Установите это значение в -1, если вы не хотите ограничивать количество строк.
Параметры
label | a GtkLabel | |
lines | желаемое количество строк или -1 |
С момента: 3.10
gtk_label_get_layout_offsets ()
void gtk_label_get_layout_offsets (GtkLabel *label,gint *x,gint *y);
Получает координаты, где метка нарисует PangoLayout, представляющий текст в метке; полезно для преобразования событий мыши в координаты внутри PangoLayout, например, для выполнения какого-либо действия, если щелкнута какая-то часть метки. Конечно, вам нужно создать GtkEventBox для получения событий и поместить метку внутрь неё, так как метки не имеют окна (они возвращают FALSE от gtk_widget_get_has_window()). Помните, что при использовании функций PangoLayout вам необходимо преобразовывать в пиксели и из пикселей, используя PANGO_PIXELS() или PANGO_SCALE.
gtk_label_get_mnemonic_keyval ()
guint
gtk_label_get_mnemonic_keyval (GtkLabel *label); Если для метки задан мнемонический ключ, эта функция возвращает keyval, используемый для мнемонического ускорителя. Если мнемонический ключ не задан, она возвращает GDK_KEY_VoidSymbol.
Параметры
label | a GtkLabel |
Возвращает
GDK keyval, пригодный для ускорителей, или GDK_KEY_VoidSymbol
gtk_label_get_selectable ()
gboolean
gtk_label_get_selectable (GtkLabel *label); Получает значение, установленное функцией gtk_label_set_selectable().
Параметры
label | объект GtkLabel |
Возвращаемое значение
TRUE, если пользователь может скопировать текст из метки
gtk_label_get_text ()
const gchar *
gtk_label_get_text (GtkLabel *label); Извлекает текст из виджета метки, как он отображается на экране. Это не включает в себя встроенные подчеркивания, указывающие на мнемоники или Pango разметку. (См. gtk_label_get_label())
Параметры
label | объект GtkLabel |
Возвращаемое значение
текст в виджете метки. Это внутренняя строка, используемая меткой, и её нельзя изменять.
gtk_label_new_with_mnemonic ()
GtkWidget *
gtk_label_new_with_mnemonic (const gchar *str); Создаёт новую метку GtkLabel, содержащую текст из str .
Если символы в str предваряются нижним подчеркиванием, они подчеркнуты. Если вам нужен символ подчёркивания в метке, используйте '__' (два подчёркивания). Первый подчеркнутый символ представляет собой ускоритель клавиатуры, называемый мнемоникой. Кнопка мнемоники может быть использована для активации другого виджета, автоматически выбранного или явно используя gtk_label_set_mnemonic_widget().
Если gtk_label_set_mnemonic_widget() не вызывается, то первый активируемый предок GtkLabel будет выбран в качестве виджета мнемоники. Например, если метка находится внутри кнопки или пункта меню, кнопка или пункт меню автоматически станут виджетом мнемоники и будут активированы мнемоникой.
Параметры
str | Текст метки с нижним подчеркиванием перед символом мнемоники. | [allow-none] |
Возвращаемое значение
новая метка GtkLabel
gtk_label_select_region ()
void gtk_label_select_region (GtkLabel *label,gint start_offset,gint end_offset);
Выделяет диапазон символов в метке, если метка доступна для выбора. См. gtk_label_set_selectable(). Если метка недоступна для выбора, эта функция не имеет эффекта. Если start_offset или end_offset равны -1, то будет использовано окончание метки.
Параметры
label | объект GtkLabel | |
start_offset | начальный смещение (в символах, а не байтах) | |
end_offset | конечное смещение (в символах, а не байтах) |
gtk_label_set_mnemonic_widget ()
void gtk_label_set_mnemonic_widget (GtkLabel *label,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 на нём. Обработчик этого сигнала по умолчанию активирует виджет, если нет конфликтов мнемоники, и иначе переключает фокус между конфликтующими виджетами.
gtk_label_set_selectable ()
void gtk_label_set_selectable (GtkLabel *label,gboolean setting);
Метки, доступные для выбора, позволяют пользователю выбирать текст из метки для копирования и вставки.
gtk_label_set_text_with_mnemonic ()
void gtk_label_set_text_with_mnemonic (GtkLabel *label,const gchar *str);
Устанавливает текст метки из строки str . Если символы в str предваряются нижним подчеркиванием, они подчеркнуты, указывая на то, что они представляют собой ускоритель клавиатуры, называемый мнемоникой. Кнопка мнемоники может быть использована для активации другого виджета, автоматически выбранного или явно используя gtk_label_set_mnemonic_widget().
Параметры
label | объект GtkLabel | |
str | строка |
gtk_label_get_attributes ()
PangoAttrList *
gtk_label_get_attributes (GtkLabel *label); Получает список атрибутов, установленных для метки с помощью gtk_label_set_attributes(), если таковые имеются. Эта функция не отражает атрибуты, полученные из разметки метки (см. gtk_label_set_markup()). Если вы хотите получить эффективные атрибуты для метки, используйте pango_layout_get_attribute (gtk_label_get_layout (label)).
Параметры
label | объект GtkLabel |
gtk_label_get_justify ()
GtkJustification
gtk_label_get_justify (GtkLabel *label); Возвращает выравнивание метки. См. gtk_label_set_justify().
Параметры
label | объект GtkLabel |
Возвращаемое значение
gtk_label_get_xalign ()
gfloat
gtk_label_get_xalign (GtkLabel *label); Получает свойство “xalign” для label .
Параметры
label | a GtkLabel |
Возвращает
свойство xalign
С момента: 3.16
gtk_label_get_yalign ()
gfloat
gtk_label_get_yalign (GtkLabel *label); Получает свойство “yalign” для label .
Параметры
label | a GtkLabel |
Возвращает
свойство yalign
С момента: 3.16
gtk_label_get_ellipsize ()
PangoEllipsizeMode
gtk_label_get_ellipsize (GtkLabel *label); Возвращает позицию обрезания метки. См. gtk_label_set_ellipsize().
Параметры
label | a GtkLabel |
Возвращает
С момента: 2.6
gtk_label_get_width_chars ()
gint
gtk_label_get_width_chars (GtkLabel *label); Возвращает желаемую ширину label в символах. См. gtk_label_set_width_chars().
Параметры
label | a GtkLabel |
Возвращает
ширину метки в символах.
С момента: 2.6
gtk_label_get_max_width_chars ()
gint
gtk_label_get_max_width_chars (GtkLabel *label); Возвращает желаемую максимальную ширину label в символах. См. gtk_label_set_width_chars().
Параметры
label | a GtkLabel |
Возвращает
максимальную ширину метки в символах.
С момента: 2.6
gtk_label_get_label ()
const gchar *
gtk_label_get_label (GtkLabel *label); Извлекает текст из виджета метки, включая любые встроенные подчеркивания, указывающие на мнемоники, и Pango разметку. (См. gtk_label_get_text()).
Параметры
label | a GtkLabel |
Возвращает
текст виджета метки. Эта строка принадлежит виджету и не должна быть изменена или освобождена.
gtk_label_get_layout ()
PangoLayout *
gtk_label_get_layout (GtkLabel *label); Получает PangoLayout, используемый для отображения метки. Макет полезен, например, для преобразования позиций текста в пиксельные позиции в сочетании с gtk_label_get_layout_offsets(). Возвращаемый макет принадлежит label, поэтому его не нужно освобождать вызывающей стороне. label свободен повторно создавать свой макет в любое время, поэтому его следует рассматривать как только для чтения.
Параметры
label | a GtkLabel |
gtk_label_get_line_wrap ()
gboolean
gtk_label_get_line_wrap (GtkLabel *label); Возвращает, автоматически ли метка переносит строки. См. gtk_label_set_line_wrap().
Параметры
label | a GtkLabel |
Возвращает
TRUE, если строки метки автоматически переносятся.
gtk_label_get_line_wrap_mode ()
PangoWrapMode
gtk_label_get_line_wrap_mode (GtkLabel *label); Возвращает режим переноса строк, используемый меткой. См. gtk_label_set_line_wrap_mode().
Параметры
label | a GtkLabel |
Возвращает
TRUE, если строки метки автоматически переносятся.
С момента: 2.10
gtk_label_get_lines ()
gint
gtk_label_get_lines (GtkLabel *label); Получает количество строк, до которых должна быть ограничена переносимая, обрезанная метка. См. gtk_label_set_lines().
Параметры
label | a GtkLabel |
Возвращает
Количество строк
С момента: 3.10
gtk_label_get_mnemonic_widget ()
GtkWidget *
gtk_label_get_mnemonic_widget (GtkLabel *label); Возвращает целевой виджет мнемоники (горячей клавиши) этой метки. См. gtk_label_set_mnemonic_widget().
Параметры
label | a GtkLabel |
Возвращает
целевой виджет мнемоники метки или NULL, если не задано и будет использоваться алгоритм по умолчанию.
[nullable][transfer none]
gtk_label_get_selection_bounds ()
gboolean gtk_label_get_selection_bounds (GtkLabel *label,gint *start,gint *end);
Получает выделенный диапазон символов в метке, возвращая TRUE, если выделение есть.
Параметры
label | a GtkLabel | |
start | место возврата начала выделения в виде смещения символа. | [out] |
end | место возврата конца выделения в виде смещения символа. | [out] |
Возвращаемое значение
TRUE, если выделение не пустое
gtk_label_get_use_markup ()
gboolean
gtk_label_get_use_markup (GtkLabel *label); Возвращает, интерпретируется ли текст метки как разметка с помощью языка разметки текста Pango. См. gtk_label_set_use_markup().
Параметры
label | a GtkLabel |
Возвращаемое значение
TRUE, если текст метки будет анализироваться на наличие разметки.
gtk_label_get_use_underline ()
gboolean
gtk_label_get_use_underline (GtkLabel *label); Возвращает, указывает ли встроенная подчёркивание в метке на мнемонический символ. См. gtk_label_set_use_underline().
Параметры
label | a GtkLabel |
Возвращаемое значение
TRUE, указывает ли встроенная подчёркивание в метке на мнемонический символ.
gtk_label_get_single_line_mode ()
gboolean
gtk_label_get_single_line_mode (GtkLabel *label); Возвращает, находится ли метка в режиме одной строки.
Параметры
label | a GtkLabel |
Возвращаемое значение
TRUE в случае, если метка находится в режиме одной строки.
С: 2.6
gtk_label_get_angle ()
gdouble
gtk_label_get_angle (GtkLabel *label); Получает угол поворота метки. См. gtk_label_set_angle().
Параметры
label | a GtkLabel |
Возвращаемое значение
угол поворота метки
С: 2.6
gtk_label_set_label ()
void gtk_label_set_label (GtkLabel *label,const gchar *str);
Устанавливает текст метки. Метка интерпретируется как содержащая встроенные подчёркивания и/или разметку Pango в зависимости от значений свойств “use-underline” и “use-markup”.
Параметры
label | a GtkLabel | |
str | новый текст для метки |
gtk_label_set_use_markup ()
void gtk_label_set_use_markup (GtkLabel *label,gboolean setting);
Устанавливает, содержит ли текст метки разметку в языке разметки текста Pango. См. gtk_label_set_markup().
gtk_label_set_use_underline ()
void gtk_label_set_use_underline (GtkLabel *label,gboolean setting);
Если true, подчёркнутый текст указывает на то, что следующий символ должен использоваться для мнемонической клавиши.
gtk_label_set_single-line-mode ()
void gtk_label_set_single_line_mode (GtkLabel *label,gboolean single_line_mode);
Устанавливает, находится ли метка в режиме одной строки.
С: 2.6
gtk_label_set_angle ()
void gtk_label_set_angle (GtkLabel *label,gdouble angle);
Устанавливает угол поворота метки. Угол 90 означает чтение снизу вверх, угол 270 — сверху вниз. Настройка угла для метки игнорируется, если метка выбираема, переносится или обрезается.
Параметры
label | a GtkLabel | |
angle | угол, образованный основанием метки с горизонталлю в градусах, измеренный против часовой стрелки |
С: 2.6
gtk_label_get_current_uri ()
const gchar *
gtk_label_get_current_uri (GtkLabel *label); Возвращает URI для активной ссылки в метке. Активная ссылка — это ссылка под указателем мыши или, в случае выбираемой метки, ссылка, в которой в настоящее время находится текстовый курсор.
Эта функция предназначена для использования в обработчике сигнала “activate-link” или для использования в обработчике сигнала “query-tooltip”.
Параметры
label | a GtkLabel |
Возвращаемое значение
текущий URI. Строка принадлежит GTK+ и не должна освобождаться или изменяться.
С: 2.18
Типы и значения
struct GtkLabel
struct GtkLabel;
Подробное описание свойств
Свойство “angle”
“angle” gdouble
Угол, образованный основанием метки с горизонтальной линией в градусах, измеряемый против часовой стрелки. Угол 90 соответствует направлению снизу вверх, угол 270 — сверху вниз. Игнорируется, если метка доступна для выбора.
Флаги: Чтение / Запись
Допустимые значения: [0,360]
Значение по умолчанию: 0
С версии: 2.6
Свойство “attributes”
“attributes” PangoAttrList *
Список атрибутов стиля, которые нужно применить к тексту метки.
Флаги: Чтение / Запись
Свойство “cursor-position”
“cursor-position” gint
Текущая позиция курсора ввода в символах.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство “ellipsize”
“ellipsize” PangoEllipsizeMode
Предпочтительное место для обрезки строки, если метка не имеет достаточного места для отображения всей строки, задаётся как PangoEllipsizeMode.
Обратите внимание, что установка этого свойства на значение, отличное от PANGO_ELLIPSIZE_NONE, приводит к тому, что метка запрашивает только необходимое пространство для отображения многоточия «...». В частности, это означает, что обрезка меток не работает хорошо в вкладках закладок, если свойство расширения вкладки GtkNotebook не установлено в TRUE. Другие способы установки ширины метки — gtk_widget_set_size_request() и gtk_label_set_width_chars().
Флаги: Чтение / Запись
Значение по умолчанию: PANGO_ELLIPSIZE_NONE
С версии: 2.6
Свойство “justify”
“justify” GtkJustification
Выравнивание строк в тексте метки относительно друг друга. Это НЕ влияет на выравнивание метки в её выделенной области. Для этого используйте GtkLabel:xalign.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_JUSTIFY_LEFT
Свойство “label”
“label” gchar *
Содержимое метки.
Если строка содержит разметку Pango XML, необходимо установить свойство «use-markup» в TRUE, чтобы метка отобразила атрибуты разметки. Также см. gtk_label_set_markup() для удобной функции, которая устанавливает одновременно это свойство и свойство «use-markup».
Если строка содержит подчеркивания, выступающие в качестве мнемоник, необходимо установить свойство «use-underline» в TRUE, чтобы метка отобразила их.
Флаги: Чтение / Запись
Значение по умолчанию: ""
Свойство “lines”
“lines” gint
Количество строк, до которых должна быть ограничена обрезка или перенос строк для метки. Это свойство не имеет эффекта, если метка не использует перенос строк или обрезку. Установите это свойство в -1, если вы не хотите ограничивать количество строк.
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 3.10
Свойство “max-width-chars”
“max-width-chars” gint
Желаемая максимальная ширина метки в символах. Если это свойство установлено в -1, ширина будет вычислена автоматически.
См. раздел макета текста для подробностей о том, как «width-chars» и «max-width-chars» определяют ширину обрезки и переноса строк меток.
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.6
Свойство “mnemonic-keyval”
“mnemonic-keyval” guint
Мемоническая клавиша-акселератор для этой метки.
Флаги: Чтение
Значение по умолчанию: 16777215
Свойство “mnemonic-widget”
“mnemonic-widget” GtkWidget *
Виджет, который будет активирован при нажатии мнемоник клавиши метки.
Флаги: Чтение / Запись
Свойство “pattern”
“pattern” gchar *
Строка с символами «_» в позициях, соответствующих символам в тексте, которые нужно подчеркнуть.
Флаги: Запись
Значение по умолчанию: NULL
Свойство “selectable”
“selectable” gboolean
Допускает ли текст метки выделение мышкой.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “selection-bound”
“selection-bound” gint
Позиция противоположного конца выделенного фрагмента текста от курсора в символах.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 0
Свойство “single-line-mode”
“single-line-mode” gboolean
Находится ли метка в режиме одной строки. В режиме одной строки высота метки не зависит от фактического текста, она всегда устанавливается в значение восхождения + спуск шрифта. Это может быть преимуществом в ситуациях, когда перерисовка метки из-за изменений текста может отвлекать, например, в строке состояния.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
С версии: 2.6
Свойство “track-visited-links”
“track-visited-links” gboolean
Установите это свойство в TRUE, чтобы метка отслеживала, какие ссылки посещены. Тогда при отображении этой ссылки будет применено состояние GTK_STATE_FLAG_VISITED в дополнение к GTK_STATE_FLAG-LINK.
Флаги: Чтение / Запись
Значение по умолчанию: TRUE
С версии: 2.18
Свойство “use-markup”
“use-markup” gboolean
Текст метки включает разметку XML. См. pango_parse_markup().
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает, что следующий символ должен использоваться для мнемоник клавиш-акселератора.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “width-chars”
“width-chars” gint
Желаемая ширина метки в символах. Если это свойство установлено в -1, ширина будет вычислена автоматически.
См. раздел макета текста для подробностей о том, как «width-chars» и «max-width-chars» определяют ширину обрезки и переноса строк меток.
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
С версии: 2.6
Свойство “wrap”
“wrap” gboolean
Если установлено, строки будут переноситься, если текст станет слишком широким.
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “wrap-mode”
“wrap-mode” PangoWrapMode
Если перенос строк включен (см. свойство «wrap»), это свойство управляет тем, как выполняется перенос строк. Значение по умолчанию — PANGO_WRAP_WORD, что означает перенос по границам слов.
Флаги: Чтение / Запись
Значение по умолчанию: PANGO_WRAP_WORD
С версии: 2.10
Свойство “xalign”
“xalign” gfloat
Свойство xalign определяет горизонтальное выравнивание текста метки внутри выделенной области метки. Сравните это с «halign», которое определяет, как выделенная область метки размещается в доступном пространстве для метки.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С версии: 3.16
Свойство “yalign”
“yalign” gfloat
Свойство yalign определяет вертикальное выравнивание текста метки внутри выделенной области метки. Сравните это с «valign», которое определяет, как выделенная область метки размещается в доступном пространстве для метки.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С версии: 3.16
Подробные сведения о сигналах
Сигнал “activate-current-link”
void user_function (GtkLabel *label, gpointer user_data)
Сигнал привязки клавиш, который генерируется при активации пользователем ссылки в метке.
Приложения также могут генерировать этот сигнал с помощью g_signal_emit_by_name(), если им нужно управлять активацией URI программно.
По умолчанию для этого сигнала назначены все варианты клавиши Enter.
Параметры
label | Метка, на которой был сгенерирован сигнал | |
user_data | Пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Действие
С версии: 2.18
Сигнал “activate-link”
gboolean user_function (GtkLabel *label, gchar *uri, gpointer user_data)
Сигнал, который генерируется при активации URI. Приложения могут подключиться к нему, чтобы переопределить стандартное поведение, которое заключается в вызове gtk_show_uri().
Параметры
label | Метка, на которой был сгенерирован сигнал | |
uri | URI, который был активирован | |
user_data | Пользовательские данные, заданные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE, если ссылка была активирована
Флаги: Выполнять последним
С версии: 2.18
Сигнал “copy-clipboard”
void user_function (GtkLabel *label, gpointer user_data)
Сигнал ::copy-clipboard — это сигнал привязки клавиш, который генерируется для копирования выделения в буфер обмена.
По умолчанию для этого сигнала назначена комбинация Ctrl-c.
Параметры
label | Объект, который получил сигнал | |
user_data | Пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “move-cursor”
void user_function (GtkLabel *entry, GtkMovementStep step, gint count, gboolean extend_selection, gpointer user_data)
Сигнал ::move-cursor — это сигнал привязки клавиш, который генерируется при начале перемещения курсора. Если курсор не отображается в entry, этот сигнал вызывает перемещение области просмотра вместо этого.
Приложениям не следует подключаться к нему, но они могут генерировать его с помощью g_signal_emit_by_name(), если им нужно программно управлять курсором.
По умолчанию для этого сигнала существуют два варианта привязки: вариант со значением модификатора Shift расширяет выделение, а вариант без модификатора Shift его не расширяет. Перечисление всех сочетаний клавиш здесь слишком обширно.
Клавиши со стрелками перемещают на отдельные символы/строки
Сочетания клавиш Ctrl+стрелка перемещают на слова/абзацы
Клавиши Home/End перемещают к концам буфера
Параметры
entry | Объект, который получил сигнал | |
step | Шаг перемещения, представленный как GtkMovementStep | |
count | Количество | |
extend_selection |
| |
user_data | Пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “populate-popup”
void user_function (GtkLabel *label, GtkMenu *menu, gpointer user_data)
Сигнал ::populate-popup генерируется перед отображением контекстного меню метки. Обратите внимание, что только выбираемые метки имеют контекстные меню.
Если вам нужно добавить элементы в контекстное меню, подключитесь к этому сигналу и добавьте свои пункты меню в menu.
Параметры
label | Метка, на которой сгенерирован сигнал | |
menu | Меню, которое заполняется | |
user_data | Пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Выполнять последним
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkLabel.html