GtkLabel
GtkLabel — Виджет, отображающий небольшое или среднее количество текста
Функции
| 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, или | [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_ellipsize ()
void gtk_label_set_ellipsize (GtkLabel *label,PangoEllipsizeMode mode);
Устанавливает режим обрезки (добавление многоточия: «…») текста, если для его отображения не хватает места.
Параметры
label | a GtkLabel | |
mode |
С: 2.6
gtk_label_set_width_chars ()
void gtk_label_set_width_chars (GtkLabel *label,gint n_chars);
Устанавливает желаемую ширину label в символах для n_chars.
Параметры
label | a GtkLabel | |
n_chars | новая желаемая ширина в символах. |
С: 2.6
gtk_label_set_max_width_chars ()
void gtk_label_set_max_width_chars (GtkLabel *label,gint n_chars);
Устанавливает желаемую максимальную ширину label в символах для n_chars.
Параметры
label | a GtkLabel | |
n_chars | новая желаемая максимальная ширина в символах. |
С: 2.6
gtk_label_set_line_wrap ()
void gtk_label_set_line_wrap (GtkLabel *label,gboolean wrap);
Включает/выключает перенос слов внутри виджета GtkLabel. TRUE позволяет переносить строки, если текст выходит за пределы виджета. FALSE позволяет обрезать текст по краю виджета, если он выходит за его пределы.
Обратите внимание, что установка переноса строк на TRUE не приводит к переносу строк по ширине родительского контейнера, так как виджеты GTK+ концептуально не могут сделать свой запрос, зависящим от размера родительского контейнера. Для метки, которая переносит строки в определённом положении, установите ширину метки, используя gtk_widget_set_size_request().
Параметры
label | a GtkLabel | |
wrap | установка |
gtk_label_set_line_wrap_mode ()
void gtk_label_set_line_wrap_mode (GtkLabel *label,PangoWrapMode wrap_mode);
Если перенос строк включён (см. gtk_label_set_line_wrap()), это управляет тем, как выполняется перенос строк. По умолчанию используется PANGO_WRAP_WORD, что означает перенос по границам слов.
Параметры
label | a GtkLabel | |
wrap_mode | режим переноса строк |
С: 2.10
gtk_label_set_lines ()
void gtk_label_set_lines (GtkLabel *label,gint lines);
Устанавливает количество строк, до которых должна быть ограничена обрезка и перенос строк в метке. Это не имеет эффекта, если метка не переносит строки или не обрезается. Установите это значение в -1, если вы не хотите ограничивать количество строк.
Параметры
label | a GtkLabel | |
lines | желаемое количество строк или -1 |
С: 3.10
gtk_label_get_layout_offsets ()
void gtk_label_get_layout_offsets (GtkLabel *label,gint *x,gint *y);
Получает координаты, где метка нарисует PangoLayout, представляющий текст в метке; это полезно для преобразования событий мыши в координаты внутри PangoLayout, например, для выполнения каких-либо действий, если нажата какая-либо часть метки. Конечно, вам нужно будет создать GtkEventBox для получения событий и разместить метку внутри него, так как метки не имеют окон (они возвращают FALSE из gtk_widget_get_has_window()). Помните, что при использовании функций PangoLayout вам нужно преобразовывать в пиксели и из пикселей с использованием PANGO_PIXELS() или PANGO_SCALE.
Параметры
label | a GtkLabel | |
x | место для хранения смещения X макета или | [out][optional] |
y | место для хранения смещения Y макета или | [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. Обработчик по умолчанию для этого сигнала активирует виджет, если нет конфликтов мнемоники, и переключает фокус между конфликтующими виджетами в противном случае.
gtk_label_set_selectable ()
void gtk_label_set_selectable (GtkLabel *label,gboolean setting);
Выбираемые метки позволяют пользователю выбирать текст из метки для копирования и вставки.
Параметры
label | a GtkLabel | |
setting |
|
gtk_label_set_text_with_mnemonic ()
void gtk_label_set_text_with_mnemonic (GtkLabel *label,const gchar *str);
Устанавливает текст метки из строки str . Если символы в str предваряются нижним подчеркиванием, они подчеркиваются, что указывает на то, что они представляют клавишу ускоренного доступа, называемую мнемоникой. Клавиша мнемоники может быть использована для активации другого виджета, выбранного автоматически или явно с помощью gtk_label_set_mnemonic_widget().
Параметры
label | 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 |
Возвращает
gtk_label_get_ellipsize ()
PangoEllipsizeMode
gtk_label_get_ellipsize (GtkLabel *label); Возвращает позицию обрезки текста в метке. См. gtk_label_set_ellipsize().
Параметры
метка | a GtkLabel |
Возвращаемое значение
С: 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 |
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 |
|
gtk_label_set_use_underline ()
void gtk_label_set_use_underline (GtkLabel *label,gboolean setting);
Если true, подчёркивание в тексте указывает, что следующий символ должен использоваться в качестве мнемонической комбинации клавиш.
Параметры
label | a GtkLabel | |
setting |
|
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 |
|
С версии: 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 |
|
С версии: 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 | |
количество | количество единиц | |
расширение_выделения |
| |
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