The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Style Properties  |  Signals

GtkButton

GtkButton Виджет создающий сигнал когда на него нажимают

Краткое описание

#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.

Детали

GtkButton

typedef struct _GtkButton 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_stock ()

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


gtk_button_pressed ()

void        gtk_button_pressed              (GtkButton *button);

Издаёт GtkButton::pressed сигнал получаемый GtkButton.

button :

Сигнал для GtkButton который вы хотите послать.


gtk_button_released ()

void        gtk_button_released             (GtkButton *button);

Издаёт GtkButton::released сигнал получаемый GtkButton.

button :

Сигнал для GtkButton который вы хотите послать.


gtk_button_clicked ()

void        gtk_button_clicked              (GtkButton *button);

Издаёт GtkButton::clicked сигнал получаемый GtkButton.

button :

Сигнал для GtkButton который вы хотите послать.


gtk_button_enter ()

void        gtk_button_enter                (GtkButton *button);

Издаёт GtkButton::enter сигнал получаемый GtkButton.

button :

Сигнал для GtkButton который вы хотите послать.


gtk_button_leave ()

void        gtk_button_leave                (GtkButton *button);

Издаёт GtkButton::leave сигнал получаемый GtkButton.

button :

Сигнал для GtkButton который вы хотите послать.


gtk_button_set_relief ()

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 как описано выше.


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);

Возвращает является ли метка кнопки заготовленным элементом.

button :

GtkButton

Возвращает :

TRUE если метка кнопки использована для выбора заготовленного элемента вместо непосредственного использования в качестве текста метки.


gtk_button_set_use_stock ()

void        gtk_button_set_use_stock        (GtkButton *button,
                                             gboolean use_stock);

Если истина, установленная метка на кнопке используется как готовый id для выбора заготовленного элемента для кнопки.

button :

GtkButton

use_stock :

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);

Если истина, подчёркивание в тексте метки кнопки указывает, что следующий символ должен быть использован для мнемонического ключа акселератора.

button :

GtkButton

use_underline :

TRUE если подчеркивание в тексте указывает на мнемоник


gtk_button_set_focus_on_click ()

void        gtk_button_set_focus_on_click   (GtkButton *button,
                                             gboolean 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_set_focus_on_click().

button :

GtkButton

Возвращает :

TRUE если кнопка захватывает фокус, когда она нажата мышкой.

Начиная с версии 2.4


gtk_button_set_alignment ()

void        gtk_button_set_alignment        (GtkButton *button,
                                             gfloat xalign,
                                             gfloat yalign);

Устанавливает выравнивание дочерних виджетов. Это свойство не имеет никакого эффекта, если дочерний виджет не является GtkMisc или GtkAligment.

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);

Получает выравнивание дочернего виджета в кнопке.

button :

GtkButton

xalign :

Размещение для возвращаемого горизонтального выравнивания

yalign :

Размещение для возвращаемого вертикального выравнивания

Начиная с версии 2.4


gtk_button_set_image ()

void        gtk_button_set_image            (GtkButton *button,
                                             GtkWidget *image);

Устанавливает данный виджет как изображение для button. Запомните, будет отображено изображение или нет зависит от установок gtk-button-images, вы не должны вызывать 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 если нет изображения

Начиная с версии 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


Детали свойств

Свойство "focus-on-click"

  "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 :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "clicked"

void        user_function                  (GtkButton *button,
                                            gpointer   user_data)      : Run first / Action

Издаётся когда кнопка активирована (нажата или отжата).

button :

Объект который получает сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "enter"

void        user_function                  (GtkButton *button,
                                            gpointer   user_data)      : Run first

Издаётся когда указатель входит на кнопку.

Устаревшее: Используйте сигнал GtkWidget::enter-notify-event.

button :

Объект который получает сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "leave"

void        user_function                  (GtkButton *button,
                                            gpointer   user_data)      : Run first

Издаётся когда указатель покидает кнопку.

Устаревшее: Используйте сигнал GtkWidget::leave-notify-event.

button :

Объект который получает сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "pressed"

void        user_function                  (GtkButton *button,
                                            gpointer   user_data)      : Run first

Издаётся когда кнопка нажата.

Устаревшее: Используйте сигнал GtkWidget::button-press-event.

button :

Объект который получает сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "released"

void        user_function                  (GtkButton *button,
                                            gpointer   user_data)      : Run first

Издаётся когда кнопка отжата.

Устаревшее: Используйте сигнал GtkWidget::button-release-event.

button :

Объект который получает сигнал.

user_data :

Пользовательские данные устанавливаемые при подключении обработчика сигнала.






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру