GtkButton
GtkButton — Виджет, который генерирует сигнал при нажатии
Функции
Свойства
| gboolean | always-show-image | Чтение / Запись / Создание |
| GtkWidget * | image | Чтение / Запись |
| GtkPositionType | image-position | Чтение / Запись |
| char * | label | Чтение / Запись / Создание |
| GtkReliefStyle | relief | Чтение / Запись |
| gboolean | use-stock | Чтение / Запись / Создание |
| gboolean | use-underline | Чтение / Запись / Создание |
| float | xalign | Чтение / Запись |
| float | yalign | Чтение / Запись |
Свойства стиля
| int | child-displacement-x | Чтение |
| int | child-displacement-y | Чтение |
| GtkBorder * | default-border | Чтение |
| GtkBorder * | default-outside-border | Чтение |
| gboolean | displace-focus | Чтение |
| int | image-spacing | Чтение |
| GtkBorder * | inner-border | Чтение |
Сигналы
Типы и значения
| 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 | имя значка или | [nullable] |
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, содержащую изображение и текст из элемента каталога. Некоторые идентификаторы каталога имеют макросы препроцессора, такие как 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, метка, установленная на кнопке, используется как идентификатор значка для выбора значка кнопки.
Параметры
button | кнопка GtkButton | |
use_stock |
|
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, подчёркивание в тексте метки кнопки указывает, что следующий символ должен использоваться для мнемонической клавиши ускорения.
Параметры
button | кнопка GtkButton | |
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 устарела с версии 3.20 и не должна использоваться в новом коде.
Используйте gtk_widget_set_focus_on_click() вместо этого
Устанавливает, получит ли кнопка фокус при щелчке мышью. Удаление фокуса при нажатии мышью полезно в таких местах, как панели инструментов, где не нужно удалять фокус клавиатуры из основной области приложения.
Параметры
button | кнопка GtkButton | |
focus_on_click | получит ли кнопка фокус при щелчке мышью |
С: 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 если кнопка получит фокус при щелчке мышью.
С: 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 или если свойство «always-show-image» TRUE. Вам не нужно вызывать gtk_widget_show() для image.
Параметры
button | ||
image | виджет, который нужно установить в качестве изображения для кнопки, или | [nullable] |
С: 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» и всегда отображать изображение, если оно доступно.
Используйте этот параметр, если кнопка будет бесполезной или трудно используемой без изображения.
Параметры
button | ||
always_show |
|
С: 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” и всегда показывать изображение, если оно доступно.
Используйте это свойство, если кнопка будет бесполезной или сложной в использовании без изображения.
Владелец: GtkButton
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
С версии: 3.6
Свойство “image”
“image” GtkWidget *
Дочерний виджет, который будет отображаться рядом с текстом кнопки.
Владелец: GtkButton
Флаги: Чтение / Запись
С версии: 2.6
Свойство “image-position”
“image-position” GtkPositionType
Положение изображения относительно текста внутри кнопки.
Владелец: GtkButton
Флаги: Чтение / Запись
Значение по умолчанию: GTK_POS_LEFT
С версии: 2.10
Свойство “label”
“label” char *
Текст виджета метки внутри кнопки, если кнопка содержит виджет метки.
Владелец: GtkButton
Флаги: Чтение / Запись / Создание
Значение по умолчанию: NULL
Свойство “relief”
“relief” GtkReliefStyle
Стиль рельефа границы.
Владелец: GtkButton
Флаги: Чтение / Запись
Значение по умолчанию: GTK_RELIEF_NORMAL
Свойство “use-stock”
“use-stock” gboolean
Если установлено, метка используется для выбора элемента набора, вместо отображения.
GtkButton:use-stock устарело с версии 3.10 и не должно использоваться в новом коде.
Владелец: GtkButton
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “use-underline”
“use-underline” gboolean
Если установлено, подчеркивание в тексте указывает на то, что следующий символ должен использоваться для сочетания клавиш.
Владелец: GtkButton
Флаги: Чтение / Запись / Создание
Значение по умолчанию: FALSE
Свойство “xalign”
“xalign” float
Если дочерним элементом кнопки является GtkMisc или GtkAlignment, это свойство может быть использовано для управления его горизонтальным выравниванием. 0.0 — выравнивание по левому краю, 1.0 — выравнивание по правому краю.
GtkButton:xalign устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием обратитесь к дочернему виджету напрямую.
Владелец: GtkButton
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С версии: 2.4
Свойство “yalign”
“yalign” float
Если дочерним элементом кнопки является GtkMisc или GtkAlignment, это свойство может быть использовано для управления его вертикальным выравниванием. 0.0 — выравнивание по верхнему краю, 1.0 — выравнивание по нижнему краю.
GtkButton:yalign устарело с версии 3.14 и не должно использоваться в новом коде.
Для управления выравниванием обратитесь к дочернему виджету напрямую.
Владелец: GtkButton
Флаги: Чтение / Запись
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
С версии: 2.4
Подробное описание свойств стиля
Свойство стиля “child-displacement-x”
“child-displacement-x” int
Расстояние в направлении X для смещения дочернего элемента при нажатии кнопки.
GtkButton:child-displacement-x устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “child-displacement-y”
“child-displacement-y” int
Расстояние в направлении Y для смещения дочернего элемента при нажатии кнопки.
GtkButton:child-displacement-y устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
Значение по умолчанию: 0
Свойство стиля “default-border”
“default-border” GtkBorder *
Свойство стиля "default-border" определяет дополнительное пространство вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Дополнительную информацию о виджетах по умолчанию см. в gtk_widget_grab_default().
GtkButton:default-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
Свойство стиля “default-outside-border”
“default-outside-border” GtkBorder *
Свойство стиля "default-outside-border" определяет дополнительное внешнее пространство вокруг кнопки, которая может стать виджетом по умолчанию для своего окна. Дополнительное внешнее пространство всегда рисуется за пределами границы кнопки. Дополнительную информацию о виджетах по умолчанию см. в gtk_widget_grab_default().
GtkButton:default-outside-border устарело с версии 3.14 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
Свойство стиля “displace-focus”
“displace-focus” gboolean
Определяет, должны ли свойства child_displacement_x/child_displacement_y также влиять на прямоугольник фокуса.
GtkButton:displace-focus устарело с версии 3.20 и не должно использоваться в новом коде.
Используйте CSS отступы вместо этого; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
Значение по умолчанию: FALSE
С версии: 2.6
Свойство стиля “image-spacing”
“image-spacing” int
Отступ в пикселях между изображением и меткой.
Владелец: GtkButton
Флаги: Чтение
Допустимые значения: >= 0
Значение по умолчанию: 2
Свойство стиля “inner-border”
“inner-border” GtkBorder *
Устанавливает границу между краями кнопки и дочерним элементом.
GtkButton:inner-border устарело с версии 3.4 и не должно использоваться в новом коде.
Используйте стандартные свойства CSS границы и отступов; значение этого свойства стиля игнорируется.
Владелец: GtkButton
Флаги: Чтение
С версии: 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.24/GtkButton.html