Spec-Zone.ru › GTK 3.22

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_pattern ()
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_line_wrap ()
void gtk_label_set_line_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 gchar * 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 ()
gfloat gtk_label_get_xalign ()
gfloat gtk_label_get_yalign ()
PangoEllipsizeMode gtk_label_get_ellipsize ()
gint gtk_label_get_width_chars ()
gint gtk_label_get_max_width_chars ()
const gchar * gtk_label_get_label ()
PangoLayout * gtk_label_get_layout ()
gboolean gtk_label_get_line_wrap ()
PangoWrapMode gtk_label_get_line_wrap_mode ()
gint 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 ()
gdouble gtk_label_get_angle ()
void gtk_label_set_label ()
void gtk_label_set_use_markup ()
void gtk_label_set_use_underline ()
void gtk_label_set_single_line_mode ()
void gtk_label_set_angle ()
const gchar * gtk_label_get_current_uri ()
void gtk_label_set_track_visited_links ()
gboolean gtk_label_get_track_visited_links ()

Свойства

gdouble угол Чтение/Запись
PangoAttrList * атрибуты Чтение/Запись
gint позиция курсора Чтение
PangoEllipsizeMode обрезание Чтение/Запись
GtkJustification выравнивание Чтение/Запись
gchar * метка Чтение/Запись
gint строки Чтение/Запись
gint макс. ширина символов Чтение/Запись
guint мнемонический ключ Чтение
GtkWidget * мнемонический виджет Чтение/Запись
gchar * шаблон Запись
gboolean выделяемый Чтение/Запись
gint граница выделения Чтение
gboolean режим одной строки Чтение/Запись
gboolean отслеживание посещённых ссылок Чтение/Запись
gboolean использовать разметку Чтение/Запись
gboolean использовать подчеркивание Чтение/Запись
gint ширина символов Чтение/Запись
gboolean переносить Чтение/Запись
PangoWrapMode режим переноса Чтение/Запись
gfloat выравнивание по горизонтали Чтение/Запись
gfloat выравнивание по вертикали Чтение/Запись

Сигналы

void активировать текущую ссылку Действие
gboolean активировать ссылку Выполнить последним
void скопировать в буфер обмена Действие
void переместить курсор Действие
void заполнить всплывающее меню Выполнить последним

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

структура 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(), должна быть корректной; например, символы <, > и & необходимо экранировать как &lt;, &gt; и &amp;. Если вы передаёте текст, полученный от пользователя, файла или сети в 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, или NULL.

[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_xalign ()

void
gtk_label_set_xalign (GtkLabel *label,
                      gfloat xalign);

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

Параметры

ярлык

объект GtkLabel

xalign

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

С: 3.16

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

a PangoEllipsizeMode

С момента: 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.

Параметры

label

a GtkLabel

x

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

[out][allow-none]

y

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

[out][allow-none]

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 на нём. Обработчик этого сигнала по умолчанию активирует виджет, если нет конфликтов мнемоники, и иначе переключает фокус между конфликтующими виджетами.

Параметры

label

объект GtkLabel

widget

целевой GtkWidget.

[allow-none]

gtk_label_set_selectable ()

void
gtk_label_set_selectable (GtkLabel *label,
                          gboolean setting);

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

Параметры

label

объект GtkLabel

setting

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

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

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

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

[nullable][transfer none]

gtk_label_get_justify ()

GtkJustification
gtk_label_get_justify (GtkLabel *label);

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

Параметры

label

объект GtkLabel

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

GtkJustification

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

Возвращает

PangoEllipsizeMode

С момента: 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

Возвращает

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

[transfer none]

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().

Параметры

label

a GtkLabel

setting

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

gtk_label_set_use_underline ()

void
gtk_label_set_use_underline (GtkLabel *label,
                             gboolean setting);

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

Параметры

label

a GtkLabel

setting

TRUE, если подчёркивания в тексте обозначают мнемонические сочетания клавиш.

gtk_label_set_single-line-mode ()

void
gtk_label_set_single_line_mode (GtkLabel *label,
                                gboolean single_line_mode);

Устанавливает, находится ли метка в режиме одной строки.

Параметры

label

a GtkLabel

single_line_mode

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

С: 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

gtk_label_set_track_visited_links ()

void
gtk_label_set_track_visited_links (GtkLabel *label,
                                   gboolean track_links);

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

Параметры

label

a GtkLabel

track_links

TRUE, чтобы отслеживать посещённые ссылки

Since: 2.18

gtk_label_get_track_visited_links ()

gboolean
gtk_label_get_track_visited_links (GtkLabel *label);

Возвращает, отслеживает ли метка в настоящее время нажатые ссылки.

Параметры

label

a GtkLabel

Возвращает

TRUE, если нажатые ссылки запоминаются

Since: 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

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

extend_selection

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

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

Spec-Zone.ru

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