GtkButton
GtkButton — Виджет, который генерирует сигнал при нажатии
Функции
Свойства
| gboolean | always-show-image | Чтение/Запись/Конструирование |
| GtkWidget * | image | Чтение/Запись |
| GtkPositionType | image-position | Чтение/Запись |
| gchar * | label | Чтение/Запись/Конструирование |
| GtkReliefStyle | relief | Чтение/Запись |
| gboolean | use-stock | Чтение/Запись/Конструирование |
| gboolean | use-underline | Чтение/Запись/Конструирование |
| gfloat | xalign | Чтение/Запись |
| gfloat | yalign | Чтение/Запись |
Стилизованные свойства
| gint | child-displacement-x | Чтение |
| gint | child-displacement-y | Чтение |
| GtkBorder * | default-border | Чтение |
| GtkBorder * | default-outside-border | Чтение |
| gboolean | displace-focus | Чтение |
| gint | image-spacing | Чтение |
| GtkBorder * | inner-border | Чтение |
Сигналы
| void | activate | Действие |
| void | clicked | Действие |
| void | enter | Выполнение сначала |
| void | leave | Выполнение сначала |
| void | pressed | Выполнение сначала |
| void | released | Выполнение сначала |
Типы и значения
| структура | GtkButton |
| структура | GtkButtonClass |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkWidget ╰── GtkContainer ╰── GtkBin ╰── GtkButton ├── GtkToggleButton ├── GtkColorButton ├── GtkFontButton ├── GtkLinkButton ├── GtkLockButton ├── GtkModelButton ╰── GtkScaleButton
Реализованные интерфейсы
GtkButton реализует AtkImplementorIface, GtkBuildable, GtkActionable и GtkActivatable.
Включаемые файлы
#include <gtk/gtk.h>
Описание
Виджет GtkButton обычно используется для запуска функции обратного вызова, которая вызывается при нажатии кнопки. Различные сигналы и способ их использования описаны ниже.
Виджет GtkButton может содержать любой допустимый дочерний виджет. То есть, он может содержать практически любой другой стандартный виджет GtkWidget. Наиболее часто используемым дочерним элементом является GtkLabel.
Узлы CSS
GtkButton имеет единственный узел CSS с именем button. Узел получит стилизованные классы .image-button или .text-button, если содержимым является только изображение или метка соответственно. Он также может получить стилизованный класс .flat.
Другие стилизованные классы, которые обычно используются с GtkButton, включают .suggested-action и .destructive-action. В особых случаях кнопки могут быть сделаны круглыми, добавив стилизованный класс .circular.
Виджеты, подобные кнопкам, такие как GtkToggleButton, GtkMenuButton, GtkVolumeButton, GtkLockButton, GtkColorButton, GtkFontButton или GtkFileChooserButton, используют стилизованные классы, такие как .toggle, .popup, .scale, .lock, .color, .font, .file, чтобы отличить их от обычной GtkButton.
Функции
gtk_button_new ()
GtkWidget *
gtk_button_new (void); Создаёт новый виджет GtkButton. Для добавления дочернего виджета к кнопке используйте gtk_container_add().
Возвращаемое значение
Созданный виджет GtkButton.
gtk_button_new_with_label ()
GtkWidget *
gtk_button_new_with_label (const gchar *label); Создаёт виджет GtkButton с дочерним виджетом GtkLabel, содержащим заданный текст.
Параметры
label | Текст, который должен содержать виджет GtkLabel. |
Возвращаемое значение
Созданный виджет GtkButton.
gtk_button_new_with_mnemonic ()
GtkWidget *
gtk_button_new_with_mnemonic (const gchar *label); Создаёт новый виджет GtkButton содержащий метку. Если символы в label предваряются нижним подчёркиванием, они подчеркиваются. Если вам нужен буквенный символ нижнего подчёркивания в метке, используйте «__» (два нижних подчёркивания). Первый подчеркнутый символ представляет собой сочетание клавиш, называемое мнемоникой. Нажатие Alt и этой клавиши активирует кнопку.
Параметры
label | Текст кнопки, с нижним подчёркиванием перед символом мнемоники |
Возвращаемое значение
новый виджет GtkButton
gtk_button_new_from_icon_name ()
GtkWidget * gtk_button_new_from_icon_name (const gchar *icon_name,GtkIconSize size);
Создаёт новую кнопку, содержащую значок из текущей темы значков.
Если имя значка неизвестно, вместо этого будет отображён значок «разбитого изображения». Если текущая тема значков изменена, значок будет соответствующим образом обновлён.
Эта функция представляет собой удобную обёртку вокруг gtk_button_new() и gtk_button_set_image().
Параметры
icon_name | имя значка | |
size | размер значка (GtkIconSize). | [type int] |
Возвращаемое значение
новый виджет GtkButton, отображающий значок темы
С: 3.10
gtk_button_new_from_stock ()
GtkWidget *
gtk_button_new_from_stock (const gchar *stock_id); gtk_button_new_from_stock устарела с версии 3.10 и не должна использоваться в вновь написанном коде.
Используйте gtk_button_new_with_label() вместо этого.
Создаёт новый GtkButton содержащий изображение и текст из элемента запаса.
Если stock_id неизвестно, оно будет обработано как метка мнемоники (как для gtk_button_new_with_mnemonic()).
Параметры
stock_id | имя элемента запаса |
Возвращаемое значение
новый виджет GtkButton
gtk_button_pressed ()
void
gtk_button_pressed (GtkButton *button); gtk_button_pressed устарела с версии 2.20 и не должна использоваться в вновь написанном коде.
Используйте сигнал “button-press-event”.
Отправляет сигнал “pressed” для данной GtkButton.
Параметры
button | Кнопка GtkButton, которому отправляется сигнал. |
gtk_button_released ()
void
gtk_button_released (GtkButton *button); gtk_button_released устарела с версии 2.20 и не должна использоваться в вновь написанном коде.
Используйте сигнал “button-release-event”.
Отправляет сигнал “released” для данной GtkButton.
Параметры
button | Кнопка GtkButton, которому отправляется сигнал. |
gtk_button_clicked ()
void
gtk_button_clicked (GtkButton *button); Отправляет сигнал “clicked” для данной GtkButton.
Параметры
button | Кнопка GtkButton, которому отправляется сигнал. |
gtk_button_enter ()
void
gtk_button_enter (GtkButton *button); gtk_button_enter устарела с версии 2.20 и не должна использоваться в вновь написанном коде.
Используйте сигнал “enter-notify-event”.
Отправляет сигнал “enter” для данной GtkButton.
Параметры
button | Кнопка GtkButton, которому отправляется сигнал. |
gtk_button_leave ()
void
gtk_button_leave (GtkButton *button); gtk_button_leave устарела с версии 2.20 и не должна использоваться в вновь написанном коде.
Используйте сигнал “leave-notify-event”.
Отправляет сигнал “leave” для данной GtkButton.
Параметры
button | Кнопка GtkButton, которому отправляется сигнал. |
gtk_button_set_relief ()
void gtk_button_set_relief (GtkButton *button,GtkReliefStyle relief);
Устанавливает стиль рельефа краёв указанного виджета GtkButton. Существуют два стиля: GTK_RELIEF_NORMAL и GTK_RELIEF_NONE. По умолчанию используется стиль GTK_RELIEF_NORMAL. Устаревшее значение GTK_RELIEF_HALF эквивалентно GTK_RELIEF_NORMAL.
Параметры
button | Виджет GtkButton, для которого необходимо установить стиль рельефа | |
relief | Стиль GtkReliefStyle, описанный выше |
gtk_button_get_relief ()
GtkReliefStyle
gtk_button_get_relief (GtkButton *button); Возвращает текущий стиль рельефа указанного виджета GtkButton.
Параметры
button | Виджет GtkButton, из которого необходимо получить GtkReliefStyle. |
Возвращает
Текущий GtkReliefStyle.
gtk_button_get_label ()
const gchar *
gtk_button_get_label (GtkButton *button); Возвращает текст из метки кнопки, установленной с помощью gtk_button_set_label(). Если текст метки не установлен, возвращается NULL. Это произойдёт, если вы создали пустую кнопку с помощью gtk_button_new() для использования в качестве контейнера.
Параметры
button | виджет GtkButton |
Возвращает
Текст виджета метки. Эта строка принадлежит виджету и не должна быть модифицирована или освобождена.
gtk_button_set_label ()
void gtk_button_set_label (GtkButton *button,const gchar *label);
Устанавливает текст метки кнопки на str . Этот текст также используется для выбора значка, если используется gtk_button_set_use_stock().
Это также очистит все ранее установленные метки.
Параметры
button | виджет GtkButton | |
label | строка |
gtk_button_get_use_stock ()
gboolean
gtk_button_get_use_stock (GtkButton *button); gtk_button_get_use_stock устарело с версии 3.10 и не должно использоваться в новом коде.
Возвращает, является ли метка кнопки значком.
Параметры
button | виджет GtkButton |
Возвращает
TRUE, если метка кнопки используется для выбора значка вместо непосредственного использования в качестве текста метки.
gtk_button_set_use_stock ()
void gtk_button_set_use_stock (GtkButton *button,gboolean use_stock);
gtk_button_set_use_stock устарело с версии 3.10 и не должно использоваться в новом коде.
Если TRUE, то метка, установленная на кнопке, используется как идентификатор значка для выбора значка для кнопки.
gtk_button_get_use_underline ()
gboolean
gtk_button_get_use_underline (GtkButton *button); Возвращает, указывает ли встроенное подчеркивание в метке кнопки на мнемонику. См. gtk_button_set_use_underline().
Параметры
button | виджет GtkButton |
Возвращает
TRUE, если встроенное подчеркивание в метке кнопки указывает на мнемонические клавиши.
gtk_button_set_use_underline ()
void gtk_button_set_use_underline (GtkButton *button,gboolean use_underline);
Если значение истинно, подчеркивание в тексте метки кнопки указывает, что следующий символ должен использоваться в качестве мнемонической клавиши.
gtk_button_set_focus_on_click ()
void gtk_button_set_focus_on_click (GtkButton *button,gboolean focus_on_click);
gtk_button_set_focus_on_click устарело и не должно использоваться в новом коде.
Устанавливает, получит ли кнопка фокус при нажатии мышью. Необходимость отказаться от захвата фокуса при нажатии мышью полезна в таких местах, как панели инструментов, где вы не хотите, чтобы фокус клавиатуры удалялся из основной области приложения.
Параметры
button | виджет GtkButton | |
focus_on_click | получит ли кнопка фокус при нажатии мышью |
Since: 2.4
gtk_button_get_focus_on_click ()
gboolean
gtk_button_get_focus_on_click (GtkButton *button); gtk_button_get_focus_on_click устарело и не должно использоваться в новом коде.
Возвращает, получит ли кнопка фокус при нажатии мышью. См. gtk_button_set_focus_on_click().
Параметры
button | виджет GtkButton |
Возвращает
TRUE, если кнопка получает фокус при нажатии мышью.
Since: 2.4
gtk_button_set_alignment ()
void gtk_button_set_alignment (GtkButton *button,gfloat xalign,gfloat yalign);
gtk_button_set_alignment устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием напрямую обратитесь к дочернему виджету.
Устанавливает выравнивание дочернего виджета. Данный параметр не оказывает влияния, если дочерний виджет не является GtkMisc или GtkAlignment.
Параметры
button | ||
xalign | горизонтальное положение дочернего виджета, 0.0 — выравнивание по левому краю, 1.0 — выравнивание по правому краю | |
yalign | вертикальное положение дочернего виджета, 0.0 — выравнивание по верхнему краю, 1.0 — выравнивание по нижнему краю |
С версии: 2.4
gtk_button_get_alignment ()
void gtk_button_get_alignment (GtkButton *button,gfloat *xalign,gfloat *yalign);
gtk_button_get_alignment устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием напрямую обратитесь к дочернему виджету.
Получает выравнивание дочернего виджета в кнопке.
Параметры
button | ||
xalign | место для возврата горизонтального выравнивания. | [out] |
yalign | место для возврата вертикального выравнивания. | [out] |
С версии: 2.4
gtk_button_set_image ()
void gtk_button_set_image (GtkButton *button,GtkWidget *image);
Устанавливает изображение для button в заданном виджете. Изображение будет отображаться, если текст метки — NULL, или если “всегда показывать изображение” имеет значение TRUE. Вы не должны вызывать gtk_widget_show() для image самостоятельно.
Параметры
button | ||
image | виджет, который нужно установить в качестве изображения для кнопки |
С версии: 2.6
gtk_button_get_image ()
GtkWidget *
gtk_button_get_image (GtkButton *button); Получает виджет, который в данный момент установлен в качестве изображения для button. Это может быть явно установлено с помощью gtk_button_set_image() или создано с помощью gtk_button_new_from_stock().
Параметры
button |
С версии: 2.6
gtk_button_set_image_position ()
void gtk_button_set_image_position (GtkButton *button,GtkPositionType position);
Устанавливает положение изображения относительно текста внутри кнопки.
Параметры
button | ||
position | положение |
С версии: 2.10
gtk_button_get_image_position ()
GtkPositionType
gtk_button_get_image_position (GtkButton *button); Получает положение изображения относительно текста внутри кнопки.
Параметры
button |
Возвращаемое значение
положение
С версии: 2.10
gtk_button_set_always_show_image ()
void gtk_button_set_always_show_image (GtkButton *button,gboolean always_show);
Если TRUE, кнопка будет игнорировать настройку “gtk-button-images” и всегда отображать изображение, если оно доступно.
Используйте этот параметр, если кнопка бесполезна или неудобна без изображения.
Параметры
С версии: 3.6
gtk_button_get_always_show_image ()
gboolean
gtk_button_get_always_show_image (GtkButton *button); Возвращает, будет ли кнопка игнорировать настройку “gtk-button-images” и всегда показывать изображение, если оно доступно.
Параметры
button |
Возвращаемое значение
TRUE если кнопка всегда будет отображать изображение
С версии: 3.6
Типы и значения
структура GtkButton
struct GtkButton;
структура GtkButtonClass
struct GtkButtonClass {
GtkBinClass parent_class;
void (* pressed) (GtkButton *button);
void (* released) (GtkButton *button);
void (* clicked) (GtkButton *button);
void (* enter) (GtkButton *button);
void (* leave) (GtkButton *button);
void (* activate) (GtkButton *button);
};
Члены
| Сигнал, генерируемый при нажатии кнопки. Устаревшее свойство: 2.8. | |
| Сигнал, генерируемый при отпускании кнопки. Устаревшее свойство: 2.8. | |
| Сигнал, генерируемый при активации кнопки (нажатии и отпускании). | |
| Сигнал, генерируемый при входе указателя в область кнопки. Устаревшее свойство: 2.8. | |
| Сигнал, генерируемый при выходе указателя из области кнопки. Устаревшее свойство: 2.8. | |
| Сигнал, вызывающий анимацию нажатия и отпускания кнопки. Приложениям не следует подключаться к этому сигналу, но следует использовать сигнал |
Подробное описание свойств
Свойство “always-show-image”
“always-show-image” gboolean
Если TRUE, кнопка будет игнорировать настройку “gtk-button-images” и всегда отображать изображение, если оно доступно.
Используйте это свойство, если кнопка бесполезна или трудна в использовании без изображения.
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
С: 3.6
Свойство “image”
“image” GtkWidget *
Дочерний виджет, который будет отображаться рядом с текстом кнопки.
Флаги: Чтение / Запись
С: 2.6
Свойство “image-position”
“image-position” GtkPositionType
Положение изображения относительно текста внутри кнопки.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POS_LEFT
С: 2.10
Свойство “label”
“label” gchar *
Текст виджета метки внутри кнопки, если кнопка содержит виджет метки.
Флаги: Чтение / Запись / Создание
Значение по умолчанию: NULL
Свойство “relief”
“relief” GtkReliefStyle
Стиль рельефа границы.
Флаги: Чтение / Запись
Значение по умолчанию: GTK_RELIEF_NORMAL
Свойство “use-stock”
“use-stock” gboolean
Если установлено, метка используется для выбора значка, а не для отображения.
GtkButton:use-stock устарело с версии 3.10 и не должно использоваться в новом коде.
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает на то, что следующий символ должен использоваться в качестве клавиши-модификатора.
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “xalign”
“xalign” gfloat
Если дочерним виджетом кнопки является GtkMisc или GtkAlignment, это свойство может использоваться для управления его горизонтальным выравниванием. 0.0 — выравнивание по левому краю, 1.0 — выравнивание по правому краю.
GtkButton:xalign устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием обратитесь к дочернему виджету напрямую.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С: 2.4
Свойство “yalign”
“yalign” gfloat
Если дочерним виджетом кнопки является GtkMisc или GtkAlignment, это свойство может использоваться для управления его вертикальным выравниванием. 0.0 — выравнивание по верхнему краю, 1.0 — выравнивание по нижнему краю.
GtkButton:yalign устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием обратитесь к дочернему виджету напрямую.
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С: 2.4
Подробное описание свойств стиля
Свойство стиля “child-displacement-x”
“child-displacement-x” gint
Насколько далеко в направлении x смещается дочерний виджет при нажатии кнопки.
GtkButton:child-displacement-x устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте поля отступов и отступов CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “child-displacement-y”
“child-displacement-y” gint
Насколько далеко в направлении y смещается дочерний виджет при нажатии кнопки.
GtkButton:child-displacement-y устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте поля отступов и отступов CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “default-border”
“default-border” GtkBorder *
Свойство стиля "default-border" определяет дополнительное пространство, добавляемое вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Дополнительную информацию о виджетах по умолчанию см. в gtk_widget_grab_default().
GtkButton:default-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте поля отступов и отступов CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
Свойство стиля “default-outside-border”
“default-outside-border” GtkBorder *
Свойство стиля "default-outside-border" определяет дополнительное внешнее пространство, добавляемое вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Дополнительное внешнее пространство всегда отображается за пределами границы кнопки. Дополнительную информацию о виджетах по умолчанию см. в gtk_widget_grab_default().
GtkButton:default-outside-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте поля отступов и отступов CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
Свойство стиля “displace-focus”
“displace-focus” gboolean
Определяет, должны ли свойства child_displacement_x/child_displacement_y также влиять на прямоугольник фокуса.
GtkButton:displace-focus устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте поля отступов и отступов CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: FALSE
С: 2.6
Свойство стиля “image-spacing”
“image-spacing” gint
Отступ в пикселях между изображением и меткой.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Свойство стиля “inner-border”
“inner-border” GtkBorder *
Устанавливает границу между краями кнопки и дочерним элементом.
GtkButton:inner-border устарело с версии 3.4 и не должно использоваться в новом коде.
Используйте стандартные поля отступов и границы CSS; значение этого свойства стиля игнорируется.
Флаги: Чтение
С: 2.10
Подробности сигналов
Сигнал “activate”
void user_function (GtkButton *widget, gpointer user_data)
Сигнал ::activate для GtkButton — это сигнал действия, и его отправка приводит к анимации нажатия и отпускания кнопки. Приложениям не следует подключаться к этому сигналу, но следует использовать сигнал «clicked».
Параметры
widget | объект, получивший сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Действие
Сигнал “clicked”
void user_function (GtkButton *button, gpointer user_data)
Выдается, когда кнопка активирована (нажата и отпущена).
Параметры
button | объект, получивший сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Действие
Сигнал “enter”
void user_function (GtkButton *button, gpointer user_data)
Выдается, когда указатель входит в область кнопки.
GtkButton::enter устарел с версии 2.8 и не должен использоваться в новом коде.
Используйте сигнал «enter-notify-event».
Параметры
button | объект, получивший сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Выполнение в первую очередь
Сигнал “leave”
void user_function (GtkButton *button, gpointer user_data)
Выдается, когда указатель выходит из области кнопки.
GtkButton::leave устарел с версии 2.8 и не должен использоваться в новом коде.
Используйте сигнал «leave-notify-event».
Параметры
button | объект, получивший сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Выполнение в первую очередь
Сигнал “pressed”
void user_function (GtkButton *button, gpointer user_data)
Выдается при нажатии на кнопку.
GtkButton::pressed устарел с версии 2.8 и не должен использоваться в новом коде.
Используйте сигнал «button-press-event».
Параметры
button | объект, получивший сигнал. | |
user_data | пользовательские данные, заданные при подключении обработчика сигналов. |
Флаги: Выполнение в первую очередь
Сигнал “released”
void user_function (GtkButton *button, gpointer user_data)
Выдается при отпускании кнопки.
GtkButton::released устарел с версии 2.8 и не должен использоваться в новом коде.
Используйте сигнал «button-release-event».
Параметры
button | объект, получивший сигнал. | |
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/GtkButton.html