Spec-Zone.ru › GTK 3.24

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

Свойства

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

Сигналы

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

Текст метки.

[nullable]

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

новая 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

объект GtkLabel

str

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

gtk_label_set_attributes ()

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

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

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

Параметры

label

объект GtkLabel

attrs

объект PangoAttrList, или NULL.

[nullable]

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

объект 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

объект GtkLabel

str

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

gtk_label_set_pattern ()

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

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

Параметры

label

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

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

объект GtkLabel

jtype

объект GtkJustification

gtk_label_set_xalign ()

void
gtk_label_set_xalign (GtkLabel *label,
                      gfloat xalign);

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

Параметры

label

объект GtkLabel

xalign

новое значение xalign, между 0 и 1

С: 3.16

gtk_label_set_yalign ()

void
gtk_label_set_yalign (GtkLabel *label,
                      gfloat yalign);

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

Параметры

label

объект 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][optional]

y

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

[out][optional]

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

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

[nullable]

Возвращает

новый 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, или NULL для отмены назначения.

[nullable]

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

Since: 3.16

gtk_label_get_yalign ()

gfloat
gtk_label_get_yalign (GtkLabel *label);

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

Параметры

label

a GtkLabel

Возвращает

свойство yalign

Since: 3.16

gtk_label_get_ellipsize ()

PangoEllipsizeMode
gtk_label_get_ellipsize (GtkLabel *label);

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

Параметры

метка

a GtkLabel

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

PangoEllipsizeMode

С: 2.6

gtk_label_get_width_chars ()

gint
gtk_label_get_width_chars (GtkLabel *label);

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

Параметры

метка

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

Параметры

метка

a GtkLabel

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

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

С: 2.6

gtk_label_get_label ()

const gchar *
gtk_label_get_label (GtkLabel *label);

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

Параметры

метка

a GtkLabel

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

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

gtk_label_get_layout ()

PangoLayout *
gtk_label_get_layout (GtkLabel *label);

Получает PangoLayout, используемый для отображения метки. Макет полезен для преобразования позиций текста в пиксельные позиции, в сочетании с gtk_label_get_layout_offsets(). Возвращаемый макет принадлежит 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().

Параметры

метка

a GtkLabel

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

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

gtk_label_get_line_wrap_mode ()

PangoWrapMode
gtk_label_get_line_wrap_mode (GtkLabel *label);

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

Параметры

метка

a GtkLabel

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

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

С: 2.10

gtk_label_get_lines ()

gint
gtk_label_get_lines (GtkLabel *label);

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

Параметры

метка

a GtkLabel

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

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

С: 3.10

gtk_label_get_mnemonic_widget ()

GtkWidget *
gtk_label_get_mnemonic_widget (GtkLabel *label);

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

Параметры

метка

a GtkLabel

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

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

[nullable][transfer none]

gtk_label_get_selection-bounds ()

gboolean
gtk_label_get_selection_bounds (GtkLabel *label,
                                gint *start,
                                gint *end);

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

Параметры

метка

a GtkLabel

начало

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

[out]

конец

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

[out]

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

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

gtk_label_get_use-markup ()

gboolean
gtk_label_get_use_markup (GtkLabel *label);

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

Параметры

метка

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 ли отслеживать посещённые ссылки

С версии: 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”                    double

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

Владелец: GtkLabel

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

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

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

С версии: 2.6

Свойство “attributes”

  “attributes”               PangoAttrList *

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

Владелец: GtkLabel

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

Свойство “cursor-position”

  “cursor-position”          int

Текущая позиция курсора ввода в символах.

Владелец: GtkLabel

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

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

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

Свойство “ellipsize”

  “ellipsize”                PangoEllipsizeMode

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

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

Владелец: GtkLabel

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

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

С версии: 2.6

Свойство “justify”

  “justify”                  GtkJustification

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

Владелец: GtkLabel

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

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

Свойство “label”

  “label”                    char *

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

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

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

Владелец: GtkLabel

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

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

Свойство “lines”

  “lines”                    int

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

Владелец: GtkLabel

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

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

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

С версии: 3.10

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

  “max-width-chars”          int

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

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

Владелец: GtkLabel

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

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

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

С версии: 2.6

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

  “mnemonic-keyval”          guint

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

Владелец: GtkLabel

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

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

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

  “mnemonic-widget”          GtkWidget *

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

Владелец: GtkLabel

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

Свойство “pattern”

  “pattern”                  char *

Строка с символами _ в позициях, соответствующих символам в тексте, которые нужно подчеркнуть.

Владелец: GtkLabel

Флаги: Запись

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

Свойство “selectable”

  “selectable”               gboolean

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

Владелец: GtkLabel

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

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

Свойство “selection-bound”

  “selection-bound”          int

Позиция противоположного конца выделения от курсора в символах.

Владелец: GtkLabel

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

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

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

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

  “single-line-mode”         gboolean

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

Владелец: GtkLabel

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

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

С версии: 2.6

Свойство “track-visited-links”

  “track-visited-links”      gboolean

Установите это свойство в TRUE для отслеживания посещенных ссылок в метке. Тогда при отрисовке ссылки будет применяться GTK_STATE_FLAG_VISITED в дополнение к GTK_STATE_FLAG_LINK.

Владелец: GtkLabel

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

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

С версии: 2.18

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

  “use-markup”               gboolean

Текст метки включает разметку XML. См. pango_parse_markup().

Владелец: GtkLabel

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

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

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

  “use-underline”            gboolean

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

Владелец: GtkLabel

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

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

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

  “width-chars”              int

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

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

Владелец: GtkLabel

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

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

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

С версии: 2.6

Свойство “wrap”

  “wrap”                     gboolean

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

Владелец: GtkLabel

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

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

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

  “wrap-mode”                PangoWrapMode

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

Владелец: GtkLabel

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

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

С версии: 2.10

Свойство “xalign”

  “xalign”                   float

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

Владелец: GtkLabel

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

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

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

С версии: 3.16

Свойство “yalign”

  “yalign”                   float

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

Владелец: GtkLabel

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

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

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

С версии: 3.16

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

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

void
user_function (GtkLabel *label,
               gpointer  user_data)

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

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

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

Параметры

метка

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

user_data

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

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

С версии: 2.18

Сигнал “activate-link”

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

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

Параметры

метка

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

uri

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

user_data

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

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

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

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

С версии: 2.18

Сигнал “copy-clipboard”

void
user_function (GtkLabel *label,
               gpointer  user_data)

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

По умолчанию для этого сигнала привязана комбинация Ctrl-c.

Параметры

метка

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

user_data

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

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

Сигнал “move-cursor”

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

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

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

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

  • Клавиши со стрелками перемещают курсор на отдельные символы/строки

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

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

Параметры

поле

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

шаг

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

количество

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

расширение_выделения

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

user_data

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

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

Сигнал “populate-popup”

void
user_function (GtkLabel *label,
               GtkMenu  *menu,
               gpointer  user_data)

Сигнал ::populate-popup генерируется перед отображением контекстного меню метки. Обратите внимание, что контекстные меню доступны только для выбираемых меток.

Если вам нужно добавить элементы в контекстное меню, подключитесь к этому сигналу и добавьте свои элементы меню в 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.24/GtkLabel.html

Spec-Zone.ru

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