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 | Выполнить первым |
Типы и значения
| struct | GtkButton |
| struct | 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). | [тип 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, содержащий изображение и текст из элемента запаса.
Некоторые идентификаторы запаса имеют макросы препроцессора, такие как GTK_STOCK_OK и GTK_STOCK_APPLY.
Если 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);
Если true, подчеркнутая часть в тексте метки кнопки указывает на то, что следующий символ будет использоваться в качестве мнемонической клавиши быстрого доступа.
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 устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте gtk_widget_set_focus_on_click() вместо этого
Устанавливает, получит ли кнопка фокус при нажатии кнопкой мыши. Отключение захвата фокуса полезно в таких местах, как панели инструментов, чтобы не перемещать фокус клавиатуры из основной области приложения.
Параметры
button | виджет GtkButton | |
focus_on_click | получит ли кнопка фокус при нажатии мышью |
C версии: 2.4
gtk_button_get_focus_on_click ()
gboolean
gtk_button_get_focus_on_click (GtkButton *button); gtk_button_get_focus_on_click устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте gtk_widget_get_focus_on_click() вместо этого
Возвращает, захватывает ли кнопка фокус при нажатии мышью. См. gtk_button_set_focus_on_click().
Параметры
button | виджет GtkButton |
Возвращаемое значение
TRUE, если кнопка захватывает фокус при нажатии мышью.
C версии: 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 | кнопка GtkButton | |
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 | кнопка GtkButton | |
xalign | место для возвращаемого горизонтального выравнивания. | [out] |
yalign | место для возвращаемого вертикального выравнивания. | [out] |
С: 2.4
gtk_button_set_image ()
void gtk_button_set_image (GtkButton *button,GtkWidget *image);
Устанавливает изображение для button в указанном виджете. Изображение будет отображаться, если текст метки NULL или если свойство “always-show-image” равно TRUE. Вам не нужно вызывать gtk_widget_show() для image.
Параметры
button | кнопка GtkButton | |
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 | кнопка GtkButton |
Возвращаемое значение
виджет GtkWidget или NULL в случае отсутствия изображения.
[nullable][transfer none]
С: 2.6
gtk_button_set_image_position ()
void gtk_button_set_image_position (GtkButton *button,GtkPositionType position);
Устанавливает положение изображения относительно текста внутри кнопки.
Параметры
button | кнопка GtkButton | |
position | положение |
С: 2.10
gtk_button_get_image_position ()
GtkPositionType
gtk_button_get_image_position (GtkButton *button); Получает положение изображения относительно текста внутри кнопки.
Параметры
button | кнопка GtkButton |
Возвращаемое значение
положение
С: 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 | кнопка GtkButton |
Возвращаемое значение
TRUE, если кнопка всегда будет показывать изображение
С: 3.6
Типы и значения
struct GtkButton
struct GtkButton;
struct 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 margin и padding вместо этого; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “child-displacement-y”
“child-displacement-y” gint
Насколько далеко в направлении y смещается дочерний элемент при нажатии кнопки.
GtkButton:child-displacement-y устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте поля CSS margin и padding вместо этого; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “default-border”
“default-border” GtkBorder *
Свойство стиля "default-border" определяет дополнительное пространство вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Для получения дополнительной информации о виджетах по умолчанию см. gtk_widget_grab_default().
GtkButton:default-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте поля CSS margin и padding вместо этого; значение этого свойства стиля игнорируется.
Флаги: Чтение
Свойство стиля “default-outside-border”
“default-outside-border” GtkBorder *
Свойство стиля "default-outside-border" определяет дополнительное внешнее пространство вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Дополнительное внешнее пространство всегда отображается за пределами границы кнопки. Для получения дополнительной информации о виджетах по умолчанию см. gtk_widget_grab_default().
GtkButton:default-outside-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте поля CSS margin и padding вместо этого; значение этого свойства стиля игнорируется.
Флаги: Чтение
Свойство стиля “displace-focus”
“displace-focus” gboolean
Указывает, должны ли свойства child_displacement_x/child_displacement_y влиять на прямоугольник фокуса.
GtkButton:displace-focus устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте поля CSS margin и padding вместо этого; значение этого свойства стиля игнорируется.
Флаги: Чтение
Значение по умолчанию: FALSE
С: 2.6
Свойство стиля “image-spacing”
“image-spacing” gint
Интервал в пикселях между изображением и меткой.
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Свойство стиля “inner-border”
“inner-border” GtkBorder *
Устанавливает границу между краями кнопки и дочерним элементом.
GtkButton:inner-border устарело с версии 3.4 и не должно использоваться в новом коде.
Используйте стандартные поля border и padding 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.22/GtkButton.html