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