Spec-Zone.ru › GTK 3.20

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, чтобы получить виджет метки без текста.

Параметры

str

Текст метки.

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

Параметры

label

a GtkLabel

str

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

gtk_label_set_attributes ()

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

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

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

Параметры

label

a GtkLabel

attrs

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

Параметры

label

a GtkLabel

str

строка разметки (см. формат разметки 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().

Параметры

label

a GtkLabel

str

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

gtk_label_set_pattern ()

void
gtk_label_set_pattern (GtkLabel *label,
                       const gchar *pattern);

Шаблон подчеркиваний, которые вы хотите под существующим текстом в виджете GtkLabel. Например, если текущий текст метки гласит “FooBarBaz”, передача шаблона “___ ___” подчеркнёт “Foo” и “Baz”, но не “Bar”.

Параметры

label

Метка GtkLabel, для которой нужно установить шаблон.

pattern

Шаблон, как описано выше.

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() не оказывает никакого влияния на метки, содержащие только одну строку.

Параметры

label

a GtkLabel

jtype

a GtkJustification

gtk_label_set_xalign ()

void
gtk_label_set_xalign (GtkLabel *label,
                      gfloat xalign);

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

Параметры

label

a 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

a GtkLabel

Возвращает

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

gtk_label_get_text ()

const gchar *
gtk_label_get_text (GtkLabel *label);

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

Параметры

label

a 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

a 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

a GtkLabel

widget

целевой GtkWidget.

[allow-none]

gtk_label_set_selectable ()

void
gtk_label_set_selectable (GtkLabel *label,
                          gboolean setting);

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

Параметры

label

a 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

a 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

a GtkLabel

Возвращает

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

[nullable][transfer none]

gtk_label_get_justify ()

GtkJustification
gtk_label_get_justify (GtkLabel *label);

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

Параметры

label

a 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, если метка находится в режиме одной строки.

Since: 2.6

gtk_label_get_angle ()

gdouble
gtk_label_get_angle (GtkLabel *label);

Получает угол поворота метки. См. gtk_label_set_angle().

Параметры

label

a GtkLabel

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

угол поворота метки

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

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

Параметры

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, если метка должна находиться в режиме одной строки

Since: 2.6

gtk_label_set_angle ()

void
gtk_label_set_angle (GtkLabel *label,
                     gdouble angle);

Устанавливает угол поворота метки. Угол 90 означает чтение снизу вверх, угол 270 — сверху вниз. Настройка угла для метки игнорируется, если метка выбираема, переносится на несколько строк или обрезается.

Параметры

label

a GtkLabel

angle

угол, образованный базовой линией метки с горизонталью, в градусах, измеренный против часовой стрелки

Since: 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+ и не должна освобождаться или изменяться.

Since: 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 для отслеживания посещённых ссылок

С момента: 2.18

gtk_label_get_track_visited_links ()

gboolean
gtk_label_get_track_visited_links (GtkLabel *label);

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

Параметры

label

a GtkLabel

Возвращает

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

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

Spec-Zone.ru

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