GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Style Properties | Signals |
GtkButtonGtkButton Виджет создающий сигнал когда на него нажимают |
#include <gtk/gtk.h>
#include <gtk/gtk.h>
GtkButton;
GtkWidget* gtk_button_new (void);
GtkWidget* gtk_button_new_with_label (const gchar *label);
GtkWidget* gtk_button_new_with_mnemonic (const gchar *label);
GtkWidget* gtk_button_new_from_stock (const gchar *stock_id);
void gtk_button_pressed (GtkButton *button);
void gtk_button_released (GtkButton *button);
void gtk_button_clicked (GtkButton *button);
void gtk_button_enter (GtkButton *button);
void gtk_button_leave (GtkButton *button);
void gtk_button_set_relief (GtkButton *button,
GtkReliefStyle newstyle);
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
const gchar* gtk_button_get_label (GtkButton *button);
void gtk_button_set_label (GtkButton *button,
const gchar *label);
gboolean gtk_button_get_use_stock (GtkButton *button);
void gtk_button_set_use_stock (GtkButton *button,
gboolean use_stock);
gboolean gtk_button_get_use_underline (GtkButton *button);
void gtk_button_set_use_underline (GtkButton *button,
gboolean use_underline);
void gtk_button_set_focus_on_click (GtkButton *button,
gboolean focus_on_click);
gboolean gtk_button_get_focus_on_click (GtkButton *button);
void gtk_button_set_alignment (GtkButton *button,
gfloat xalign,
gfloat yalign);
void gtk_button_get_alignment (GtkButton *button,
gfloat *xalign,
gfloat *yalign);
void gtk_button_set_image (GtkButton *button,
GtkWidget *image);
GtkWidget* gtk_button_get_image (GtkButton *button);
void gtk_button_set_image_position (GtkButton *button,
GtkPositionType position);
GtkPositionType gtk_button_get_image_position
(GtkButton *button);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkButton
+----GtkToggleButton
+----GtkColorButton
+----GtkFontButton
+----GtkOptionMenu
GtkButton осуществляет AtkImplementorIface.
"focus-on-click" gboolean : Read / Write
"image" GtkWidget : Read / Write
"label" gchararray : Read / Write / Construct
"relief" GtkReliefStyle : Read / Write
"use-stock" gboolean : Read / Write / Construct
"use-underline" gboolean : Read / Write / Construct
"xalign" gfloat : Read / Write
"yalign" gfloat : Read / Write
"child-displacement-x" gint : Read
"child-displacement-y" gint : Read
"default-border" GtkBorder : Read
"default-outside-border" GtkBorder : Read
"displace-focus" gboolean : Read
"activate" void user_function (GtkButton *widget,
gpointer user_data) : Run first / Action
"clicked" void user_function (GtkButton *button,
gpointer user_data) : Run first / Action
"enter" void user_function (GtkButton *button,
gpointer user_data) : Run first
"leave" void user_function (GtkButton *button,
gpointer user_data) : Run first
"pressed" void user_function (GtkButton *button,
gpointer user_data) : Run first
"released" void user_function (GtkButton *button,
gpointer user_data) : Run first
Виджет GtkButton в основном используется для прикрепления к нему функций которые вызываются когда он нажат. Различные сигналы и то как ими пользоваться описано ниже.
Виджет GtkButton может содержать любой стандартный дочерний виджет GtkWidget. В основном в качестве дочернего виджета используется GtkLabel.
typedef struct _GtkButton GtkButton;К этой структуре нет непосредственного доступа. Используйте для этого функции приведённые ниже.
gtk_button_new ()
GtkWidget* gtk_button_new (void);Создаётся новый виджет GtkButton. Для добавления дочернего виджета в кнопку, используйте gtk_container_add().
Возвращает : |
Вновь созданный GtkButton виджет. |
GtkWidget* gtk_button_new_with_label (const gchar *label);Создаёт виджет GtkButton с дочерним виджетом GtkLabel содержащим полученный текст.
label : |
Текст который должен содержать виджет GtkLabel. |
Возвращает : |
Вновь созданный GtkButton виджет. |
GtkWidget* gtk_button_new_with_mnemonic (const gchar *label);Создаёт новый GtkButton содержащий метку. Если символам в label предшествует символ подчеркивания, то они становятся подчёркнутыми. Если вам нужен символ подчеркивания в метке, используйте '__' (два символа подчёркивания). Символ подчеркивания спереди представляет клавиатурный акселератор называемый мнемоническим. Нажатый Alt и клавиша активизируют кнопку.
label : |
Текст кнопки с подчеркиванием спереди означающий мнемонический ускоритель |
Возвращает : |
новый GtkButton |
GtkWidget* gtk_button_new_from_stock (const gchar *stock_id);Создаёт новый GtkButton содержащий изображение и текст готового элемента. Некоторые готовые идентификаторы имеют макрос препроцессора, такой как GTK_STOCK_OK и GTK_STOCK_APPLY.
Если stock_id не существует, то обработка будет как для метки мнемоника (как для gtk_button_new_with_mnemonic()).
stock_id : |
Имя готового элемента |
Возвращает : |
новый GtkButton |
void gtk_button_pressed (GtkButton *button);
button : |
Сигнал для GtkButton который вы хотите послать. |
void gtk_button_released (GtkButton *button);
button : |
Сигнал для GtkButton который вы хотите послать. |
void gtk_button_clicked (GtkButton *button);
button : |
Сигнал для GtkButton который вы хотите послать. |
void gtk_button_enter (GtkButton *button);
button : |
Сигнал для GtkButton который вы хотите послать. |
void gtk_button_leave (GtkButton *button);
button : |
Сигнал для GtkButton который вы хотите послать. |
void gtk_button_set_relief (GtkButton *button,
GtkReliefStyle newstyle);
Устанавливает стиль рельефа кнопки для данного виджета GtkButton. Существует три стиля, GTK_RELIEF_NORMAL, GTK_RELIEF_HALF, GTK_RELIEF_NONE. Стиль по умолчанию GTK_RELIEF_NORMAL.
button : |
Виджет GtkButton для которого вы хотите установить стиль. |
newstyle : |
GtkReliefStyle как описано выше. |
GtkReliefStyle gtk_button_get_relief (GtkButton *button);Возвращает текущий стиль рельефа данного GtkButton.
button : |
GtkButton виджет от которого вы хотите получить GtkReliefStyle. |
Возвращает : |
Текущий GtkReliefStyle |
const gchar* gtk_button_get_label (GtkButton *button);Извлекает текст из метки кнопки, который установлен gtk_button_set_label(). Если текст метки не был установлен, возвращается значение NULL. Это происходит в том случае если вы создаёте пустую кнопку, с помощью gtk_button_new(), для того, чтобы использовать её как контейнер.
button : |
|
Возвращает : |
Текст метки виджета. Этой строкой владеет виджет и она не должна изменяться или освобождаться. |
void gtk_button_set_label (GtkButton *button,
const gchar *label);
Устанавливают текст метки кнопки для str. Этот текст используется также для готовых элементов, если используется gtk_button_set_use_stock().
Это также очищает любую предварительно установленную метку.
button : |
|
label : |
строка |
gboolean gtk_button_get_use_stock (GtkButton *button);Возвращает является ли метка кнопки заготовленным элементом.
button : |
|
Возвращает : |
TRUE если метка кнопки использована для выбора заготовленного элемента вместо непосредственного использования в качестве текста метки. |
void gtk_button_set_use_stock (GtkButton *button,
gboolean use_stock);
Если истина, установленная метка на кнопке используется как готовый id для выбора заготовленного элемента для кнопки.
button : |
|
use_stock : |
TRUE если кнопка должна использовать заготовленный элемент |
gboolean gtk_button_get_use_underline (GtkButton *button);Определяет является ли встроенное подчёркивание в метке кнопки индикатором мнемоника. Смотрите gtk_button_set_use_underline().
button : |
|
Возвращает : |
TRUE если встроенное подчеркивание в метке кнопки сообщает о мнемоническом ключе акселераторе. |
void gtk_button_set_use_underline (GtkButton *button,
gboolean use_underline);
Если истина, подчёркивание в тексте метки кнопки указывает, что следующий символ должен быть использован для мнемонического ключа акселератора.
button : |
|
use_underline : |
TRUE если подчеркивание в тексте указывает на мнемоник |
void gtk_button_set_focus_on_click (GtkButton *button,
gboolean focus_on_click);
Устанавливает захватывать ли фокус кнопкой, когда она нажата мышкой. Не фокусироваться в момент нажатия полезно например на панели инструментов, когда вам не нужно удалять клавиатурный фокус из основной области приложения.
button : |
|
focus_on_click : |
Должна ли кнопка перехватывать фокус в момент нажатия на неё мышкой |
Начиная с версии 2.4
gboolean gtk_button_get_focus_on_click (GtkButton *button);Определяет захватывает ли фокус кнопка, когда она нажата мышкой. Смотрите gtk_button_set_focus_on_click().
button : |
|
Возвращает : |
TRUE если кнопка захватывает фокус, когда она нажата мышкой. |
Начиная с версии 2.4
void gtk_button_set_alignment (GtkButton *button,
gfloat xalign,
gfloat yalign);
Устанавливает выравнивание дочерних виджетов. Это свойство не имеет никакого эффекта, если дочерний виджет не является GtkMisc или GtkAligment.
button : |
|
xalign : |
Горизонтальная позиция дочернего виджета, 0.0 если левое выравнивание, 1.0 если правое |
yalign : |
Вертикальная позиция дочернего виджета, 0.0 если верхнее выравнивание, 1.0 если нижнее выравнивание |
Начиная с версии 2.4
void gtk_button_get_alignment (GtkButton *button,
gfloat *xalign,
gfloat *yalign);
Получает выравнивание дочернего виджета в кнопке.
button : |
|
xalign : |
Размещение для возвращаемого горизонтального выравнивания |
yalign : |
Размещение для возвращаемого вертикального выравнивания |
Начиная с версии 2.4
void gtk_button_set_image (GtkButton *button,
GtkWidget *image);
Устанавливает данный виджет как изображение для button. Запомните, будет отображено изображение или нет зависит от установок gtk-button-images, вы не должны вызывать gtk_widget_show() для image самостоятельно.
button : |
|
image : |
Виджет устанавливаемый как изображение для кнопки |
Начиная с версии 2.6
GtkWidget* gtk_button_get_image (GtkButton *button);Получает текущий виджет который установлен как изображение для button. Это можно явно установить с помощью gtk_button_set_image() или создать с помощью gtk_button_new_from_stock().
button : |
|
Возвращает : |
GtkWidget или NULL если нет изображения |
Начиная с версии 2.6
void gtk_button_set_image_position (GtkButton *button,
GtkPositionType position);
Устанавливает позицию изображения относительно текста внутри кнопки.
|
|
|
позиция |
Начиная с версии 2.10
GtkPositionType gtk_button_get_image_position
(GtkButton *button);
Получает позицию изображения относительно текста внутри кнопки.
|
|
Возвращает: |
позиция |
Начиная с версии 2.10
"focus-on-click" gboolean : Read / WriteДолжна ли кнопка перехватывать фокус при нажатии на неё мышкой.
Значение по умолчанию: TRUE
Свойство "image"
"image" GtkWidget : Read / WriteДочерний виджет появляющийся рядом с текстом кнопки.
Свойство "
image-position
""image-position" GtkPositionType : Read / WriteУстанавливает позицию изображения относительно текста внутри кнопки.
Значение по умолчанию: GTK_POS_LEFT
Начиная с версии 2.10
Свойство "label"
"label" gchararray : Read / Write / ConstructТекст виджета ярлыка внутри кнопки, если кнопка содержит виджет ярлык.
Значение по умолчанию: NULL
Свойство "relief"
"relief" GtkReliefStyle : Read / WriteСтиль рельефа кромки.
Значение по умолчанию: GTK_RELIEF_NORMAL
Свойство "use-stock"
"use-stock" gboolean : Read / Write / ConstructЕсли установлено, метка используется для выбора готового элемента вместо непосредственного отображения.
Значение по умолчанию: FALSE
Свойство "use-underline"
"use-underline" gboolean : Read / Write / ConstructЕсли установлено, подчеркивание перед текстом сообщает, что следующий символ должен использоваться как ключ мнемонического акселератора.
Значение по умолчанию: FALSE
Свойство "xalign"
"xalign" gfloat : Read / WriteЕсли дочерний виджет кнопки является GtkMisc или GtkAlignment, это свойство может использоваться для контроля горизонтального выравнивания. 0.0 левое выравнивание, 1.0 правое выравнивание.
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Начиная с версии 2.4
Свойство "yalign"
"yalign" gfloat : Read / WriteЕсли дочерний виджет кнопки является GtkMisc или GtkAlignment, это свойство может использоваться для контроля вертикального выравнивания. 0.0 это верхнее выравнивание, 1.0 это нижнее выравнивание.
Допустимые значения: [0,1]
Значение по умолчанию: 0.5
Начиная с версии 2.4
Детали свойств стиля
Свойство стиля "child-displacement-x"
"child-displacement-x" gint : ReadКак далеко перемещать дочерний виджет в направлении x, когда кнопка нажата.
Значение по умолчанию: 0
Свойство стиля "child-displacement-y"
"child-displacement-y" gint : ReadКак далеко перемещать дочерний виджет в направлении y, когда кнопка нажата.
Значение по умолчанию: 0
Свойство стиля "default-border"
"default-border" GtkBorder : ReadДополнительное пространство добавляемое для CAN_DEFAULT кнопок.
Свойство стиля "default-outside-border"
"default-outside-border" GtkBorder : ReadДополнительное пространство добавляемое для CAN_DEFAULT кнопок, которое всегда отрисовывается вне границ кромки.
Свойство стиля "displace-focus"
"displace-focus" gboolean : ReadДолжны ли свойства child_displacement_x/child_displacement_y затрагивать прямоугольник фокусировки.
Значение по умолчанию: FALSE
Начиная с версии 2.6
Свойство стиля "
inner-border
""inner-border" GtkBorder : ReadУстанавливает границу между кромкой кнопки и дочернего виджета.
Начиная с версии 2.10
Детали сигналов
Сигнал "activate"
void user_function (GtkButton *widget, gpointer user_data) : Run first / Action
Сигнал "activate" на GtkButton это сигнал действия и создаётся при нажатии или отжатии кнопки. Приложения не должны подключать этот сигнал, а использовать сигнал "clicked".
widget : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkButton *button,
gpointer user_data) : Run first / Action
Издаётся когда кнопка активирована (нажата или отжата).
button : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkButton *button,
gpointer user_data) : Run first
Издаётся когда указатель входит на кнопку.
Устаревшее: Используйте сигнал GtkWidget::enter-notify-event.
button : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkButton *button,
gpointer user_data) : Run first
Издаётся когда указатель покидает кнопку.
Устаревшее: Используйте сигнал GtkWidget::leave-notify-event.
button : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkButton *button,
gpointer user_data) : Run first
Издаётся когда кнопка нажата.
Устаревшее: Используйте сигнал GtkWidget::button-press-event.
button : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkButton *button,
gpointer user_data) : Run first
Издаётся когда кнопка отжата.
Устаревшее: Используйте сигнал GtkWidget::button-release-event.
button : |
Объект который получает сигнал. |
user_data : |
Пользовательские данные устанавливаемые при подключении обработчика сигнала. |