GtkLabel
GtkLabel — Виджет для отображения небольшого или среднего объёма текста
Функции
Свойства
| PangoAttrList * | attributes | Чтение / Запись |
| PangoEllipsizeMode | ellipsize | Чтение / Запись |
| GMenuModel * | extra-menu | Чтение / Запись |
| GtkJustification | justify | Чтение / Запись |
| char * | label | Чтение / Запись |
| int | lines | Чтение / Запись |
| int | max-width-chars | Чтение / Запись |
| guint | mnemonic-keyval | Чтение |
| GtkWidget * | mnemonic-widget | Чтение / Запись |
| gboolean | selectable | Чтение / Запись |
| gboolean | single-line-mode | Чтение / Запись |
| gboolean | use-markup | Чтение / Запись |
| gboolean | use-underline | Чтение / Запись |
| int | width-chars | Чтение / Запись |
| gboolean | wrap | Чтение / Запись |
| PangoWrapMode | wrap-mode | Чтение / Запись |
| float | xalign | Чтение / Запись |
| float | yalign | Чтение / Запись |
Сигналы
| void | activate-current-link | Действие |
| gboolean | activate-link | Выполнение последним |
| void | copy-clipboard | Действие |
| void | move-cursor | Действие |
Действия
| link.copy | ||
| link.open | ||
| selection.select-all | ||
| selection.delete | ||
| clipboard.paste | ||
| clipboard.copy | ||
| clipboard.cut | ||
| menu.popup |
Типы и Значения
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkLabel
Реализованные интерфейсы
GtkLabel реализует GtkAccessible, GtkBuildable и GtkConstraintTarget.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Виджет GtkLabel отображает небольшой фрагмент текста. Как следует из названия, большинство меток используются для маркировки других виджетов, таких как GtkButton.
CSS-узлы
GtkLabel имеет единственный CSS-узел с именем label. К меткам можно применять множество стилей, таких как .title, .subtitle, .dim-label и т. д. В GtkShortcutsWindow метки используются со стилем .keycap.
Если у метки есть выделение, у неё есть дочерний узел с именем selection.
Если у метки есть ссылки, для каждой ссылки есть отдельный дочерний узел. Эти узлы содержат информацию о ссылке или о том, посещена ли она, в зависимости от того, была ли она посещена. В этом случае у узла метки также появляется класс стиля .link.
GtkLabel как GtkBuildable
Реализация GtkLabel интерфейса GtkBuildable поддерживает пользовательский элемент <attributes>, который поддерживает любое количество элементов <attribute>. Элемент <attribute> имеет атрибуты с именами “name“, “value“, “start“ и “end“ и позволяет задавать значения PangoAttribute для этой метки.
Пример фрагмента определения интерфейса с указанием атрибутов Pango:
Атрибуты start и end задают диапазон символов, к которому применяется атрибут Pango. Если start и end не указаны, атрибут применяется ко всему тексту. Обратите внимание, что указание диапазонов не имеет большого смысла с переводимыми атрибутами. Вместо этого используйте разметку, встроенную в переводимое содержимое.
Доступность
GtkLabel использует роль GTK_ACCESSIBLE_ROLE_LABEL.
Мемоники
Метки могут содержать «мемоники». Мемоники — это подчеркнутые символы в метке, используемые для навигации с клавиатуры. Мемоники создаются путём предоставления строки с подчёркиванием перед символом мемоника, например "_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_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” немного изменилась с появлением управления геометрией ширины относительно высоты.
Ссылки
GTK поддерживает разметку для нажимаемых гиперссылок в дополнение к обычной разметке Pango. Разметка для ссылок заимствована из HTML, используя элемент <a> с атрибутами “href”, “title” и “class”. GTK отображает ссылки так же, как они отображаются в веб-браузерах, с цветным, подчеркнутым текстом. Атрибут “title” отображается как всплывающая подсказка для ссылки. Атрибут “class” используется как класс стиля для CSS-узла ссылки.
Пример выглядит следующим образом:
Можно реализовать пользовательскую обработку ссылок и их всплывающих подсказок с помощью сигнала “activate-link” и функции gtk_label_get_current_uri().
Функции
gtk_label_new ()
GtkWidget *
gtk_label_new (const char *str); Создаёт новую метку с заданным текстом внутри. Вы можете передать NULL, чтобы получить виджет метки без текста.
Параметры
str | Текст метки. | [nullable] |
Возвращает
новую GtkLabel
gtk_label_set_text ()
void gtk_label_set_text (GtkLabel *self,const char *str);
Устанавливает текст внутри виджета GtkLabel. Заменяет любой ранее установленный текст.
Эта функция очистит все ранее установленные сокращённые клавиши и установит свойство “use-underline” в FALSE в качестве побочного эффекта.
Эта функция установит свойство “use-markup” в FALSE в качестве побочного эффекта.
См. также: gtk_label_set_markup()
Параметры
self | a GtkLabel | |
str | Текст, который вы хотите установить |
gtk_label_set_attributes ()
void gtk_label_set_attributes (GtkLabel *self,PangoAttrList *attrs);
Устанавливает PangoAttrList; атрибуты в списке применяются к тексту метки.
Атрибуты, установленные с помощью этой функции, будут применены и объединены с любыми другими атрибутами, ранее изменёнными с помощью свойств “use-underline” или “use-markup”. Не рекомендуется смешивать строки разметки с вручную заданными атрибутами, но если необходимо, знайте, что атрибуты будут применены к метке после разбора строки разметки.
Параметры
self | a GtkLabel | |
attrs | a PangoAttrList, или | [nullable] |
gtk_label_set_markup ()
void gtk_label_set_markup (GtkLabel *self,const char *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()
Параметры
self | a GtkLabel | |
str | строка разметки (см. формат разметки Pango) |
gtk_label_set_markup_with_mnemonic ()
void gtk_label_set_markup_with_mnemonic (GtkLabel *self,const char *str);
Разбирает str, который помечен с помощью языка разметки Pango, устанавливая текст и список атрибутов метки на основе результатов разбора. Если символы в str предваряются нижним подчёркиванием, они подчёркиваются, что указывает на то, что они представляют собой сокращённую клавишу, называемую мнемоникой.
Сокращённую клавишу можно использовать для активации другого виджета, выбранного автоматически, или явно с помощью gtk_label_set_mnemonic_widget().
Параметры
self | a GtkLabel | |
str | строка разметки (см. формат разметки Pango) |
gtk_label_set_justify ()
void gtk_label_set_justify (GtkLabel *self,GtkJustification jtype);
Устанавливает выравнивание строк в тексте метки относительно друг друга. GTK_JUSTIFY_LEFT является значением по умолчанию при первом создании виджета с помощью gtk_label_new(). Если вы хотите установить выравнивание метки в целом, используйте gtk_widget_set_halign() вместо этого. gtk_label_set_justify() не оказывает никакого влияния на метки, содержащие только одну строку.
Параметры
self | a GtkLabel | |
jtype |
gtk_label_set_xalign ()
void gtk_label_set_xalign (GtkLabel *self,float xalign);
Устанавливает свойство “xalign” для label .
Параметры
self | a GtkLabel | |
xalign | новое значение xalign, от 0 до 1 |
gtk_label_set_yalign ()
void gtk_label_set_yalign (GtkLabel *self,float yalign);
Устанавливает свойство “yalign” для label .
Параметры
self | a GtkLabel | |
yalign | новое значение yalign, от 0 до 1 |
gtk_label_set_ellipsize ()
void gtk_label_set_ellipsize (GtkLabel *self,PangoEllipsizeMode mode);
Устанавливает режим, используемый для обрезания текста (добавление многоточия: "...") в случае, если для отображения всей строки недостаточно места.
Параметры
self | a GtkLabel | |
mode |
gtk_label_set_max_width_chars ()
void gtk_label_set_max_width_chars (GtkLabel *self,int n_chars);
Устанавливает желаемую максимальную ширину в символах для label в n_chars .
Параметры
self | объект GtkLabel | |
n_chars | новая желаемая максимальная ширина в символах. |
gtk_label_set_wrap ()
void gtk_label_set_wrap (GtkLabel *self,gboolean wrap);
Переключает перенос строк в виджете GtkLabel. TRUE позволяет изменять строки, если текст выходит за пределы размеров виджета. FALSE позволяет обрезать текст по краю виджета, если он выходит за пределы его размеров.
Обратите внимание, что установка переноса строк в значение TRUE не приводит к переносу строк по ширине родительского контейнера, потому что виджеты GTK концептуально не могут зависеть от размера родительского контейнера. Для метки, которая переносит строки в определенной позиции, установите ширину метки с помощью gtk_widget_set_size_request().
Параметры
self | объект GtkLabel | |
wrap | настройка |
gtk_label_set_wrap_mode ()
void gtk_label_set_wrap_mode (GtkLabel *self,PangoWrapMode wrap_mode);
Если перенос строк включён (см. gtk_label_set_wrap()), это управляет тем, как выполняется перенос строк. По умолчанию используется значение PANGO_WRAP_WORD, что означает перенос по границам слов.
Параметры
self | объект GtkLabel | |
wrap_mode | режим переноса строк |
gtk_label_set_lines ()
void gtk_label_set_lines (GtkLabel *self,int lines);
Устанавливает количество строк, до которого должен быть ограничен эллиптизированный, переносящийся по строкам, ярлык. Это не имеет эффекта, если ярлык не переносит строки или не эллиптизирован. Установите это значение в -1, если вы не хотите ограничивать количество строк.
Параметры
self | объект GtkLabel | |
lines | желаемое количество строк или -1 |
gtk_label_get_layout_offsets ()
void gtk_label_get_layout_offsets (GtkLabel *self,int *x,int *y);
Получает координаты, где ярлык нарисует PangoLayout, представляющий текст в ярлыке; полезно для преобразования событий мыши в координаты внутри PangoLayout, например, чтобы выполнить какое-либо действие, если щелкнута какая-то часть ярлыка. Помните, что при использовании функций PangoLayout необходимо переводить значения в пиксели и обратно, используя PANGO_PIXELS() или PANGO_SCALE.
Параметры
self | объект GtkLabel | |
x | место для хранения смещения X макета или | [out][optional] |
y | место для хранения смещения Y макета или | [out][optional] |
gtk_label_get_mnemonic_keyval ()
guint
gtk_label_get_mnemonic_keyval (GtkLabel *self); Если для ярлыка задан мнемонический ключ, эта функция возвращает keyval, используемый для мнемонического ускорителя. Если мнемонический ключ не задан, возвращается GDK_KEY_VoidSymbol.
Параметры
self | объект GtkLabel |
Возвращает
GDK keyval, используемый для ускорителей, или GDK_KEY_VoidSymbol
gtk_label_get_selectable ()
gboolean
gtk_label_get_selectable (GtkLabel *self); Получает значение, установленное с помощью gtk_label_set_selectable().
Параметры
self | объект GtkLabel |
Возвращает
TRUE если пользователь может скопировать текст из ярлыка
gtk_label_get_text ()
const char *
gtk_label_get_text (GtkLabel *self); Извлекает текст из виджета метки, как он отображается на экране. Это не включает встроенные подчеркивания, указывающие на мнемонические обозначения или разметку Pango. (См. gtk_label_get_label())
Параметры
self | объект GtkLabel |
Возвращает
текст в виджете метки. Это внутренняя строка, используемая меткой, и её нельзя изменять.
gtk_label_new_with_mnemonic ()
GtkWidget *
gtk_label_new_with_mnemonic (const char *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 *self,int start_offset,int end_offset);
Выделяет диапазон символов в метке, если метка разрешает выделение. См. gtk_label_set_selectable(). Если метка не разрешает выделение, эта функция не оказывает влияния. Если start_offset или end_offset равны -1, то будет использоваться конец метки.
Параметры
self | объект GtkLabel | |
start_offset | начальный смещение (в символах, а не байтах) | |
end_offset | конечное смещение (в символах, а не байтах) |
gtk_label_set_mnemonic_widget ()
void gtk_label_set_mnemonic_widget (GtkLabel *self,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 *self,gboolean setting);
Метки, разрешающие выделение, позволяют пользователю выделять текст из метки для копирования и вставки.
Параметры
self | объект GtkLabel | |
setting |
|
gtk_label_set_text_with_mnemonic ()
void gtk_label_set_text_with_mnemonic (GtkLabel *self,const char *str);
Устанавливает текст метки из строки str . Если символы в str предваряются подчёркиванием, они подчёркиваются, указывая, что они представляют мнемонический ключ. Мнемонический ключ может быть использован для активации другого виджета, выбранного автоматически, или явно с помощью gtk_label_set_mnemonic_widget().
Параметры
self | объект GtkLabel | |
str | строка |
gtk_label_get_attributes ()
PangoAttrList *
gtk_label_get_attributes (GtkLabel *self); Получает список атрибутов, установленных для метки с помощью gtk_label_set_attributes(), если таковые имеются. Эта функция не отображает атрибуты, полученные из разметки метки (см. gtk_label_set_markup()). Если вы хотите получить эффективные атрибуты метки, используйте pango_layout_get_attribute (gtk_label_get_layout (self)).
Параметры
self | объект GtkLabel |
Возвращает
список атрибутов или NULL если не было установлено ни одного.
[nullable][transfer none]
gtk_label_get_justify ()
GtkJustification
gtk_label_get_justify (GtkLabel *self); Возвращает выравнивание метки. См. gtk_label_set_justify().
Параметры
self | объект GtkLabel |
Возвращает
gtk_label_get_xalign ()
float
gtk_label_get_xalign (GtkLabel *self); Получает свойство “xalign” для label .
Параметры
self | объект GtkLabel |
Возвращает
значение свойства xalign
gtk_label_get_yalign ()
float
gtk_label_get_yalign (GtkLabel *self); Получает свойство “yalign” для label .
Параметры
self | объект GtkLabel |
Возвращает
значение свойства yalign
gtk_label_get_ellipsize ()
PangoEllipsizeMode
gtk_label_get_ellipsize (GtkLabel *self); Возвращает позицию обрезания текста метки. См. gtk_label_set_ellipsize().
Параметры
self | объект GtkLabel |
Возвращает
gtk_label_get_width_chars ()
int
gtk_label_get_width_chars (GtkLabel *self); Возвращает желаемую ширину label в символах. См. gtk_label_set_width_chars().
Параметры
self | объект GtkLabel |
Возвращает
ширину метки в символах.
gtk_label_get_max_width_chars ()
int
gtk_label_get_max_width_chars (GtkLabel *self); Возвращает желаемую максимальную ширину label в символах. См. gtk_label_set_width_chars().
Параметры
self | объект GtkLabel |
Возвращает
максимальную ширину метки в символах.
gtk_label_get_label ()
const char *
gtk_label_get_label (GtkLabel *self); Получает текст виджета метки, включая любые вложенные подчёркивания, указывающие на мнемоники, и разметку Pango. (См. gtk_label_get_text()).
Параметры
self | объект GtkLabel |
Возвращает
текст виджета метки. Эта строка принадлежит виджету и не должна изменяться или освобождаться.
gtk_label_get_layout ()
PangoLayout *
gtk_label_get_layout (GtkLabel *self); Получает PangoLayout, используемый для отображения метки. Макет полезен, например, для преобразования позиций текста в пиксельные позиции в сочетании с gtk_label_get_layout_offsets(). Возвращаемый макет принадлежит label, поэтому вызывающий его не должен освобождать. label может в любое время пересоздать свой макет, поэтому его следует считать только для чтения.
Параметры
self | a GtkLabel |
gtk_label_get_wrap ()
gboolean
gtk_label_get_wrap (GtkLabel *self); Возвращает значение, указывающее, автоматически ли происходит перенос строк в метке. См. gtk_label_set_wrap().
Параметры
self | a GtkLabel |
Возвращаемое значение
TRUE если строки метки автоматически переносятся.
gtk_label_get_wrap_mode ()
PangoWrapMode
gtk_label_get_wrap_mode (GtkLabel *self); Возвращает режим переноса строк, используемый меткой. См. gtk_label_set_wrap_mode().
Параметры
self | a GtkLabel |
Возвращаемое значение
TRUE если строки метки автоматически переносятся.
gtk_label_get_lines ()
int
gtk_label_get_lines (GtkLabel *self); Получает количество строк, до которых должна быть ограничена метка с обрезкой и переносом строк. См. gtk_label_set_lines().
Параметры
self | a GtkLabel |
Возвращаемое значение
Количество строк
gtk_label_get_mnemonic_widget ()
GtkWidget *
gtk_label_get_mnemonic_widget (GtkLabel *self); Извлекает целевой элемент для мнемоники (горячей клавиши) этой метки. См. gtk_label_set_mnemonic_widget().
Параметры
self | a GtkLabel |
Возвращаемое значение
целевую метку, или NULL если не задана и используется алгоритм по умолчанию.
[nullable][transfer none]
gtk_label_get_selection_bounds ()
gboolean gtk_label_get_selection_bounds (GtkLabel *self,int *start,int *end);
Получает выбранный диапазон символов в метке, возвращает TRUE если выделения нет.
Параметры
self | a GtkLabel | |
start | место назначения для начала выделения, как смещение символа. | [out] |
end | место назначения для конца выделения, как смещение символа. | [out] |
Возвращаемое значение
TRUE если выделение не пустое
gtk_label_get_use_markup ()
gboolean
gtk_label_get_use_markup (GtkLabel *self); Возвращает значение, указывающее, интерпретируется ли текст метки как разметка с помощью языка разметки Pango. См. gtk_label_set_use_markup().
Параметры
self | a GtkLabel |
Возвращаемое значение
TRUE если текст метки будет проанализирован на предмет разметки.
gtk_label_get_use_underline ()
gboolean
gtk_label_get_use_underline (GtkLabel *self); Возвращает значение, указывающее, является ли встроенное подчеркивание в метке указанием мнемоники. См. gtk_label_set_use_underline().
Параметры
self | a GtkLabel |
Возвращаемое значение
TRUE если встроенное подчеркивание в метке указывает на мнемонику.
gtk_label_get_single-line-mode ()
gboolean
gtk_label_get_single_line_mode (GtkLabel *self); Возвращает значение, указывающее, находится ли метка в режиме одной строки.
Параметры
self | a GtkLabel |
Возвращаемое значение
TRUE когда метка находится в режиме одной строки.
gtk_label_set_label ()
void gtk_label_set_label (GtkLabel *self,const char *str);
Устанавливает текст метки. Метка интерпретируется как включающая встроенные подчеркивания и/или разметку Pango в зависимости от значений свойств “use-underline” и “use-markup”.
Параметры
self | a GtkLabel | |
str | новый текст для метки |
gtk_label_set_use_markup ()
void gtk_label_set_use_markup (GtkLabel *self,gboolean setting);
Устанавливает, содержит ли текст метки разметку на языке разметки текста Pango. См. gtk_label_set_markup().
Параметры
self | a GtkLabel | |
setting |
|
gtk_label_get_current_uri ()
const char *
gtk_label_get_current_uri (GtkLabel *self); Возвращает URI для текущей активной ссылки в метке. Активная ссылка — это ссылка под указателем мыши или, в случае с выбором ссылок в метке, ссылка, в которой в данный момент находится текстовый курсор.
Эта функция предназначена для использования в обработчике “activate-link” или в обработчике “query-tooltip”.
Параметры
self | a GtkLabel |
Возвращает
текущий активный URI или NULL если такового нет. Строка принадлежит GTK и не должна освобождаться или изменяться.
[nullable]
gtk_label_set_extra_menu ()
void gtk_label_set_extra_menu (GtkLabel *self,GMenuModel *model);
Устанавливает модель меню для добавления при построении контекстного меню для label.
Параметры
self | a GtkLabel | |
model | a GMenuModel. | [allow-none] |
gtk_label_get_extra_menu ()
GMenuModel *
gtk_label_get_extra_menu (GtkLabel *self); Получает модель меню, установленную с помощью gtk_label_set_extra_menu().
Параметры
self | a GtkLabel |
Возвращает
модель меню.
[transfer none][nullable]
Типы и значения
GtkLabel
typedef struct _GtkLabel GtkLabel;
Подробное описание свойств
Свойство “attributes”
“attributes” PangoAttrList *
Список атрибутов стиля, применяемых к тексту метки.
Владелец: GtkLabel
Флаги: Чтение / Запись
Свойство “ellipsize”
“ellipsize” PangoEllipsizeMode
Предпочтительное место для обрезки строки, если метка не имеет достаточно места для отображения всей строки, указано как PangoEllipsizeMode.
Обратите внимание, что установка этого свойства на значение, отличное от PANGO_ELLIPSIZE_NONE, влечет за собой побочный эффект: метка запрашивает только необходимое пространство для отображения многоточия «…». В частности, это означает, что обрезка меток плохо работает во вкладках записных книжек, если свойство расширения вкладки GtkNotebook не установлено в TRUE. Другие способы установки ширины метки — gtk_widget_set_size_request() и gtk_label_set_width_chars().
Владелец: GtkLabel
Флаги: Чтение / Запись
Значение по умолчанию: PANGO_ELLIPSIZE_NONE
Свойство “extra-menu”
“extra-menu” GMenuModel *
Модель меню, содержимое которого будет добавлено в контекстное меню.
Владелец: GtkLabel
Флаги: Чтение / Запись
Свойство “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
Свойство “max-width-chars”
“max-width-chars” int
Желаемая максимальная ширина метки в символах. Если это свойство установлено в -1, ширина будет вычисляться автоматически.
См. раздел по расположению текста для получения подробной информации о том, как “width-chars” и “max-width-chars” определяют ширину обрезки и переноса строк меток.
Владелец: GtkLabel
Флаги: Чтение / Запись
Допустимые значения: >= -1
Значение по умолчанию: -1
Свойство “mnemonic-keyval”
“mnemonic-keyval” guint
Мнемонический акселератор клавиши для этой метки.
Владелец: GtkLabel
Флаги: Чтение
Значение по умолчанию: 16777215
Свойство “mnemonic-widget”
“mnemonic-widget” GtkWidget *
Виджет, который будет активирован при нажатии мнемонической клавиши метки.
Владелец: GtkLabel
Флаги: Чтение / Запись
Свойство “selectable”
“selectable” gboolean
Возможность выделения текста метки с помощью мыши.
Владелец: GtkLabel
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “single-line-mode”
“single-line-mode” gboolean
Режим отображения метки в одной строке. В режиме одной строки высота метки не зависит от фактического текста, она всегда устанавливается в высоту восходящей и нисходящей частей шрифта. Это может быть преимуществом в ситуациях, когда перерасчет размера метки из-за изменений текста был бы отвлекающим, например, в строке состояния.
Владелец: GtkLabel
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “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
Свойство “wrap”
“wrap” gboolean
Если установлено, строки переносятся, если текст становится слишком широким.
Владелец: GtkLabel
Флаги: Чтение / Запись
Значение по умолчанию: FALSE
Свойство “wrap-mode”
“wrap-mode” PangoWrapMode
Если перенос строк включен (см. свойство “wrap”), это свойство управляет способом переноса строк. Значение по умолчанию — PANGO_WRAP_WORD, что означает перенос по границам слов.
Владелец: GtkLabel
Флаги: Чтение / Запись
Значение по умолчанию: PANGO_WRAP_WORD
Свойство “xalign”
“xalign” float
Свойство xalign определяет горизонтальное выравнивание текста метки внутри выделенной области метки. Сравните это с “halign”, которое определяет, как выделенная область метки позиционируется в доступном для метки пространстве.
Владелец: GtkLabel
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Свойство “yalign”
“yalign” float
Свойство yalign определяет вертикальное выравнивание текста метки внутри выделенной области метки. Сравните это с “valign”, которое определяет, как выделенная область метки позиционируется в доступном для метки пространстве.
Владелец: GtkLabel
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Подробности сигналов
Сигнал “activate-current-link”
void user_function (GtkLabel *self, gpointer user_data)
Сигнал сочетания клавиш, который генерируется при активации ссылки в метке.
Приложения также могут генерировать этот сигнал с g_signal_emit_by_name(), если им нужно программно управлять активацией URI.
По умолчанию для этого сигнала используются все варианты клавиши Enter.
Параметры
self | Метка, в которой был сгенерирован сигнал | |
user_data | Данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
Сигнал “activate-link”
gboolean user_function (GtkLabel *self, char *uri, gpointer user_data)
Сигнал, который генерируется для активации URI. Приложения могут подключиться к нему, чтобы переопределить стандартное поведение, которое заключается в вызове gtk_show_uri().
Параметры
self | Метка, в которой был сгенерирован сигнал | |
uri | URI, который активируется | |
user_data | Данные пользователя, заданные при подключении обработчика сигнала. |
Возвращаемое значение
TRUE если ссылка активирована
Флаги: Выполнение последним
Сигнал “copy-clipboard”
void user_function (GtkLabel *self, gpointer user_data)
Сигнал ::copy-clipboard — это сигнал сочетания клавиш, который генерируется для копирования выделения в буфер обмена.
По умолчанию для этого сигнала используется сочетание Ctrl-c.
Параметры
self | объект, получивший сигнал | |
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 перемещают курсор в начало/конец буфера
Параметры
entry | объект, получивший сигнал | |
step | размер шага перемещения, как GtkMovementStep | |
count | количество единиц | |
extend_selection |
| |
user_data | Данные пользователя, заданные при подключении обработчика сигнала. |
Флаги: Действие
Подробности действий
Действие “link.copy”
Копирует ссылку в буфер обмена при активации ссылки в метке.
Действие “link.open”
Открывает ссылку при активации ссылки в метке.
Действие “selection.select-all”
Выделяет весь текст, если метка позволяет выделение.
Действие “selection.delete”
Ничего не делает, так как текст в метках нельзя удалить.
Действие “clipboard.paste”
Ничего не делает, так как текст в метках нельзя редактировать.
Действие “clipboard.copy”
Копирует текст в буфер обмена.
Действие “clipboard.cut”
Ничего не делает, так как текст в метках нельзя удалить.
Действие “menu.popup”
Открывает контекстное меню.
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkLabel.html