краткое описание#include <gtk/gtk.h> gtklabel; gtkwidget* gtk_label_new (const gchar *str); void gtk_label_set_text (gtklabel *label, const gchar *str); void gtk_label_set_attributes (gtklabel *label, pangoattrlist *attrs); void gtk_label_set_markup (gtklabel *label, const gchar *str); void gtk_label_set_markup_with_mnemonic (gtklabel *label, const gchar *str); void gtk_label_set_pattern (gtklabel *label, const gchar *pattern); void gtk_label_set_justify (gtklabel *label, gtkjustification jtype); void gtk_label_set_ellipsize (gtklabel *label, pangoellipsizemode mode); void gtk_label_set_width_chars (gtklabel *label, gint n_chars); void gtk_label_set_max_width_chars (gtklabel *label, gint n_chars); void gtk_label_get (gtklabel *label, gchar **str); guint gtk_label_parse_uline (gtklabel *label, const gchar *string); void gtk_label_set_line_wrap (gtklabel *label, gboolean wrap); void gtk_label_set_line_wrap_mode (gtklabel *label, pangowrapmode wrap_mode); #define gtk_label_set void gtk_label_get_layout_offsets (gtklabel *label, gint *x, gint *y); guint gtk_label_get_mnemonic_keyval (gtklabel *label); gboolean gtk_label_get_selectable (gtklabel *label); const gchar* gtk_label_get_text (gtklabel *label); gtkwidget* gtk_label_new_with_mnemonic (const gchar *str); void gtk_label_select_region (gtklabel *label, gint start_offset, gint end_offset); void gtk_label_set_mnemonic_widget (gtklabel *label, gtkwidget *widget); void gtk_label_set_selectable (gtklabel *label, gboolean setting); void gtk_label_set_text_with_mnemonic (gtklabel *label, const gchar *str); pangoattrlist* gtk_label_get_attributes (gtklabel *label); gtkjustification gtk_label_get_justify (gtklabel *label); pangoellipsizemode gtk_label_get_ellipsize (gtklabel *label); gint gtk_label_get_width_chars (gtklabel *label); gint gtk_label_get_max_width_chars (gtklabel *label); const gchar* gtk_label_get_label (gtklabel *label); pangolayout* gtk_label_get_layout (gtklabel *label); gboolean gtk_label_get_line_wrap (gtklabel *label); pangowrapmode gtk_label_get_line_wrap_mode (gtklabel *label); gtkwidget* gtk_label_get_mnemonic_widget (gtklabel *label); gboolean gtk_label_get_selection_bounds (gtklabel *label, gint *start, gint *end); gboolean gtk_label_get_use_markup (gtklabel *label); gboolean gtk_label_get_use_underline (gtklabel *label); gboolean gtk_label_get_single_line_mode (gtklabel *label); gdouble gtk_label_get_angle (gtklabel *label); void gtk_label_set_label (gtklabel *label, const gchar *str); void gtk_label_set_use_markup (gtklabel *label, gboolean setting); void gtk_label_set_use_underline (gtklabel *label, gboolean setting); void gtk_label_set_single_line_mode (gtklabel *label, gboolean single_line_mode); void gtk_label_set_angle (gtklabel *label, gdouble angle); иерархия объектовgobject +----ginitiallyunowned +----gtkobject +----gtkwidget +----gtkmisc +----gtklabel +----gtkaccellabel +----gtktipsquery осуществляемые интерфейсыgtklabel осуществляет atkimplementoriface. свойства"angle" gdouble : read / write "attributes" pangoattrlist : read / write "cursor-position" gint : read "ellipsize" pangoellipsizemode : read / write "justify" gtkjustification : read / write "label" gchararray : read / write "max-width-chars" gint : read / write "mnemonic-keyval" guint : read "mnemonic-widget" gtkwidget : read / write "pattern" gchararray : write "selectable" gboolean : read / write "selection-bound" gint : read "single-line-mode" gboolean : read / write "use-markup" gboolean : read / write "use-underline" gboolean : read / write "width-chars" gint : read / write "wrap" gboolean : read / write "wrap-mode" pangowrapmode : read / write сигналы"copy-clipboard" void user_function (gtklabel *label, gpointer user_data) : run last / action "move-cursor" void user_function (gtklabel *label, gtkmovementstep *arg1, gint arg2, gboolean arg3, gpointer user_data) : run last / action "populate-popup" void user_function (gtklabel *label, gtkmenu *arg1, gpointer user_data) : run last описаниеgtklabel отображает небольшое количество текста. как подразумевает название, большинство ярлыков используется для маркировки других виджетов таких как gtkbutton, gtkmenuitem, или gtkoptionmenu. мнемоникиярлыки могут содержать mnemonics.
мнемоники являются подчеркнутыми
символами в ярлыках, используемые для
обозначения клавиш. мнемоники создаются,
обеспечивая строку с подчеркиванием
перед символом мнемоника, таких как
мнемоники автоматически активизируются
любым активизируемым виджетом с ярлыком,
таким как gtkbutton; если
ярлык внутри виджета не имеет мнемонической
цели, вы можете сообщить ярлыку об этой
цели используя /* нажатие клавиш alt+h активизирует эту кнопку */ button = gtk_button_new (); label = gtk_label_new_with_mnemonic ("_hello"); gtk_container_add (gtk_container (button), label); вот удобная функция создания кнопки сразу с мнемоническим ярлыком внутри: /* нажатие клавиш alt+h активизирует эту кнопку */ button = gtk_button_new_with_mnemonic ("_hello");
для создания мнемоника рядом с ярлыком
виджета, такого как gtkentry,
вы можете установить ярлык ввода с
помощью /* нажатие alt+h сфокусирует поле ввода */ entry = gtk_entry_new (); label = gtk_label_new_with_mnemonic ("_hello"); gtk_label_set_mnemonic_widget (gtk_label (label), entry); разметка (стилизованный текст)для создания форматированного текста внутри ярлыка (изменяемый цвет, шрифт, и т.д..), текст ярлыка можно обеспечить в простом markup format. вот так можно создать ярлык с маленьким шрифтом: label = gtk_label_new (null); gtk_label_set_markup (gtk_label (label), "<small>small text</small>"); (смотрите полную документацию доступных тэгов в pango руководстве.) разметка помещаемая в разметка строки простой способ
установить pangoattrlist
на ярлык; выделяемые ярлыкиярлыки могут быть сделаны выделяемыми
с помощью выравнивание текстаярлыки могут содержать любое количество параграфов, но будут иметь проблемы выполнения если их слишком много. параграфы разделяются новой строкой или другим разделителем параграфов понятным для pango. ярлык может автоматически упаковать
текст если вы вызовите
деталиgtklabeltypedef struct _gtklabel gtklabel; к этой структуре нет непосредственного доступа. для доступа к ней используйте функции приведенные ниже. gtk_label_new ()gtkwidget* gtk_label_new (const gchar *str);
создаёт новый ярлык с данным текстом
внутри. вы можете поместить
gtk_label_set_text ()void gtk_label_set_text (gtklabel *label, const gchar *str); устанавливает текст внутри gtklabel виджета. перезаписывает текст установленный ранее. это также очистит любые предварительно установленные мнемонические акселераторы.
gtk_label_set_attributes ()void gtk_label_set_attributes (gtklabel *label, pangoattrlist *attrs);
устанавливает pangoattrlist;
атрибуты в списке применяются к тексту
ярлыка. атрибуты установленные с помощью
этой функции будут игнорироваться если
свойство "use_underline" или свойство
"use_markup" равны
gtk_label_set_markup ()void gtk_label_set_markup (gtklabel *label, const gchar *str);
анализирует char *markup; markup = g_markup_printf_escaped ("<span style=\"italic\">%s</span>", str); gtk_label_set_markup (gtk_label (label), markup); g_free (markup);
gtk_label_set_markup_with_mnemonic ()void gtk_label_set_markup_with_mnemonic (gtklabel *label, const gchar *str);
анализирует мнемоник может использоваться для
активации другого виджета, выбранный
автоматически, или явно использующий
gtk_label_set_pattern ()void gtk_label_set_pattern (gtklabel *label, const gchar *pattern); шаблон подчеркивания существующего текста внутри gtklabel виджета. например если текущий текст ярлыка скажем "foobarbaz" помещённый шаблон "___ ___" подчеркнет "foo" и "baz" но не "bar".
gtk_label_set_justify ()void gtk_label_set_justify (gtklabel *label, gtkjustification jtype);
устанавливает выравнивание линий внутри
ярлыка относительно друг друга.
gtk_label_set_ellipsize ()void gtk_label_set_ellipsize (gtklabel *label, pangoellipsizemode mode); устанавливает режим используемый для заполнения (ellipsize) (добавляет заполнение: "...") текста если для строки не достаточно свободного пространства.
начиная с версии 2.6 gtk_label_set_width_chars ()void gtk_label_set_width_chars (gtklabel *label, gint n_chars);
устанавливает желательную ширину в
символах для
начиная с версии 2.6 gtk_label_set_max_width_chars ()void gtk_label_set_max_width_chars (gtklabel *label, gint n_chars);
устанавливает желательную максимальную
ширину в символах для
начиная с версии 2.6 gtk_label_get ()void gtk_label_get (gtklabel *label, gchar **str); внимание
выдает текущий текст внутри gtklabel
и записывает его в полученную как
аргумент
gtk_label_parse_uline ()guint gtk_label_parse_uline (gtklabel *label, const gchar *string); внимание
анализирует полученную строку для подчеркивания и преобразует следующие символы в подчеркнутые. эта функция используется только внутри библиотеки gtk+ для пунктов меню и подобного.
gtk_label_set_line_wrap ()void gtk_label_set_line_wrap (gtklabel *label, gboolean wrap);
переключает оболочку линий в пределах
gtklabel
виджета. помните установка оболочки линий
равной
gtk_label_set_line_wrap_mode ()void gtk_label_set_line_wrap_mode (gtklabel *label, pangowrapmode wrap_mode);
если оболочка линий включена (смотрите
начиная с версии 2.10 gtk_label_set#define gtk_label_set gtk_label_set_text внимание
аналог gtk_label_get_layout_offsets ()void gtk_label_get_layout_offsets (gtklabel *label, gint *x, gint *y);
получает координаты расположения текста
в ярлыке представленного с помощью
pangolayout;
полезно для преобразования событий
мышки в координаты внутри pangolayout,
например для получения некоторых
действий если некоторая часть ярлыка
нажата (clicked). естественно вам нужно
создать gtkeventbox для
получения событий и упаковать в него
ярлык, поскольку ярлыки являются
виджетами без окна gtk_no_window.
помните, когда вы используете pangolayout
функции вам нужно преобразовывать из
и в pixels используя
gtk_label_get_mnemonic_keyval ()guint gtk_label_get_mnemonic_keyval (gtklabel *label); если ярлык имеет установленный мнемоник эта функция возвращает значение клавиш мнемонического акселератора. если нет установленного мнемоника то возвращается gdk_voidsymbol.
gtk_label_get_selectable ()gboolean gtk_label_get_selectable (gtklabel *label);
выдаёт значение установленное с помощью
gtk_label_get_text ()const gchar* gtk_label_get_text (gtklabel *label);
выдаёт текст из ярлыка, как отображаемый
на экране. он не будет содержать
подчеркиваний указывающих на мнемоник
или pango разметку. (смотрите
gtk_label_new_with_mnemonic ()gtkwidget* gtk_label_new_with_mnemonic (const gchar *str);
создаёт новый gtklabel,
содержащий текст в если символам в если
gtk_label_select_region ()void gtk_label_select_region (gtklabel *label, gint start_offset, gint end_offset);
выделяет диапазон символов в ярлыке,
если ярлык доступен для выделения.
смотрите
gtk_label_set_mnemonic_widget ()void gtk_label_set_mnemonic_widget (gtklabel *label, gtkwidget *widget);
если ярлык имеет установленный мнемоник
(используя например
целевой виджет будет иметь акселератор издающий сигнал "mnemonic_activate". по умолчанию обработчик этого сигнала будет активировать виджет если нет никаких мнемонических коллизий, иначе переключит фокус между конфликтующими виджетами.
gtk_label_set_selectable ()void gtk_label_set_selectable (gtklabel *label, gboolean setting); позволяет пользователю копировать текст из ярлыка, для процесса copy-and-paste.
gtk_label_set_text_with_mnemonic ()void gtk_label_set_text_with_mnemonic (gtklabel *label, const gchar *str);
устанавливает текст ярлыка из строки
gtk_label_get_attributes ()pangoattrlist* gtk_label_get_attributes (gtklabel *label);
выдаёт список атрибутов которые
установлены на ярлыке с использованием
gtk_label_get_justify ()gtkjustification gtk_label_get_justify (gtklabel *label);
возвращает выравнивание ярлыка. смотрите
gtk_label_get_ellipsize ()pangoellipsizemode gtk_label_get_ellipsize (gtklabel *label);
возвращает возможность заполнения
ярлыка. смотрите
начиная с версии 2.6 gtk_label_get_width_chars ()gint gtk_label_get_width_chars (gtklabel *label);
находит желательную ширину
начиная с версии 2.6 gtk_label_get_max_width_chars ()gint gtk_label_get_max_width_chars (gtklabel *label);
находит желательный максимум ширины
начиная с версии 2.6 gtk_label_get_label ()const gchar* gtk_label_get_label (gtklabel *label);
возвращает текст ярлыка включая любой
вложенный индикатор мнемоника и pango
разметку. (смотрите
gtk_label_get_layout ()pangolayout* gtk_label_get_layout (gtklabel *label);
выдаёт pangolayout
используемый для отображения ярлыка.
выравнивание полезно например для
конвертации текстовой позиции в pixel
позицию, в комбинации с
gtk_label_get_line_wrap ()gboolean gtk_label_get_line_wrap (gtklabel *label);
возвращает включена ли автоматическая
оболочка для линий ярлыка. смотрите
gtk_label_get_line_wrap_mode ()pangowrapmode gtk_label_get_line_wrap_mode (gtklabel *label);
возвращает используемый режим для
оболочки линий ярлыка. смотрите
начиная с версии 2.10 gtk_label_get_mnemonic_widget ()gtkwidget* gtk_label_get_mnemonic_widget (gtklabel *label);
определяет цель мнемоника (клавиатурное
сокращение) для этого ярлыка. смотрите
gtk_label_get_selection_bounds ()gboolean gtk_label_get_selection_bounds (gtklabel *label, gint *start, gint *end);
определяет выделяемую область символов
в ярлыке, возвращает
gtk_label_get_use_markup ()gboolean gtk_label_get_use_markup (gtklabel *label);
возвращает нужно ли интерпретировать
текст как размеченный с помощью pango
text markup language. смотрите
gtk_label_get_use_underline ()gboolean gtk_label_get_use_underline (gtklabel *label);
возвращает указывает ли подчеркивание
в ярлыке на мнемоник. смотрите
gtk_label_get_single_line_mode ()gboolean gtk_label_get_single_line_mode (gtklabel *label); возвращает находится ли ярлык в режиме одиночной линии.
начиная с версии 2.6 gtk_label_get_angle ()gdouble gtk_label_get_angle (gtklabel *label); выдаёт угол поворота ярлыка. смотрите gtk_label_set_angle.
начиная с версии 2.6 gtk_label_set_label ()void gtk_label_set_label (gtklabel *label, const gchar *str); устанавливает текст ярлыка. ярлык интерпретируется как включающий подчеркивание и/или pango разметку зависимости от значений label->use_underline и label->use_markup.
gtk_label_set_use_markup ()void gtk_label_set_use_markup (gtklabel *label, gboolean setting);
устанавливает должен ли текст ярлыка
содержать разметку в pango's
text markup language. смотрите
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); устанавливает должен ли ярлык находится в режиме одиночной линии.
начиная с версии 2.6 gtk_label_set_angle ()void gtk_label_set_angle (gtklabel *label, gdouble angle); устанавливает угол поворота для ярлыка. угол 90 читается как снизу в верх, угол 270, сверху в низ. установки угла для ярлыка игнорируются если ярлык выделяемый, в оболочке, или заполняемый.
начиная с версии 2.6 детали свойствсвойство "
|
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика. |
void user_function (gtklabel *label, gtkmovementstep *arg1, gint arg2, gboolean arg3, gpointer user_data) : run last / action
|
объект получающий сигнал. |
|
|
|
|
|
|
|
пользовательские данные устанавливаемые при подключении обработчика. |
void user_function (gtklabel *label, gtkmenu *arg1, gpointer user_data) : run last
|
объект получающий сигнал. |
|
|
|
пользовательские данные устанавливаемые при подключении обработчика. |