Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |  Properties  |  Signals

GtkRadioButton

GtkRadioButton Выбор из множества контроль-кнопок

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

#include <gtk/gtk.h> GtkRadioButton; GtkWidget* gtk_radio_button_new (GSList *group); GtkWidget* gtk_radio_button_new_from_widget (GtkRadioButton *group); GtkWidget* gtk_radio_button_new_with_label (GSList *group, const gchar *label); GtkWidget* gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group, const gchar *label); GtkWidget* gtk_radio_button_new_with_mnemonic (GSList *group, const gchar *label); GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *group, const gchar *label); #define gtk_radio_button_group void gtk_radio_button_set_group (GtkRadioButton *radio_button, GSList *group); GSList* gtk_radio_button_get_group (GtkRadioButton *radio_button);

Иерархия объектов

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkBin +----GtkButton +----GtkToggleButton +----GtkCheckButton +----GtkRadioButton

Осуществляемые интерфейсы

GtkRadioButton осуществляет AtkImplementorIface.

Свойства

  "group"                GtkRadioButton        : Write

Сигналы

"group-changed" void user_function (GtkRadioButton *style, gpointer user_data) : Run first

Описание

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

Каждая радио-кнопка член некоторой группы радио-кнопок. Когда одна выделена, все другие радио-кнопки в этой же группе становятся не выделенными. GtkRadioButton один из способов дать пользователю выбор из нескольких опций.

Виджет радио-кнопки создаётся с помощью gtk_radio_button_new(), помещается NULL как аргумент, если это первая радио-кнопка в группе. В последующих вызовах для добавления к группе, вы должны помещать эту кнопку как аргумент. Опционально может быть вызвана gtk_radio_button_new_with_label(), если вам нужна радио-кнопка с текстовой меткой.

Альтернативно, когда добавляются виджеты к существующей группе радио-кнопок, используется gtk_radio_button_new_from_widget() с GtkRadioButton для которого уже назначена группа. Обеспечивается также функция удобства gtk_radio_button_new_with_label_from_widget().

Для поиска группы к которой установлен GtkRadioButton, используется gtk_radio_button_get_group().

Для удаления GtkRadioButton из одной группы и создания части новой, используется gtk_radio_button_set_group().

Список групп не нуждается в освобождении (freed), поскольку каждый GtkRadioButton удаляет себя сам и свой элемент в списке при уничтожении.

Пример 1. Как создать группу из двух радио-кнопок.

void create_radio_buttons (void) { GtkWidget *window, *radio1, *radio2, *box, *entry; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); box = gtk_vbox_new (TRUE, 2); /* Создаём радио-кнопку с GtkEntry виджетом */ radio1 = gtk_radio_button_new (NULL); entry = gtk_entry_new (); gtk_container_add (GTK_CONTAINER (radio1), entry); /* Создаём радио-кнопку с меткой */ radio2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio1), "I'm the second radio button."); /* Упаковываем элементы в контейнер, затем отображаем все виджеты */ gtk_box_pack_start (GTK_BOX (box), radio1, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (box), radio2, TRUE, TRUE, 2); gtk_container_add (GTK_CONTAINER (window), box); gtk_widget_show_all (window); return; }

Когда не выбранная кнопка в группе нажата она получает "toggled" сигнал, как делает предварительно выбранная кнопка. В обработчике сигнала "toggled", gtk_toggle_button_get_active() может использоваться для определения была ли кнопка выбрана или с неё снят выбор.

Детали

GtkRadioButton

typedef struct _GtkRadioButton GtkRadioButton;

Содержит приватные данные которые должны читаться и управляться функциями приведёнными ниже.


gtk_radio_button_new ()

GtkWidget*  gtk_radio_button_new            (GSList *group);

Создаёт новый GtkRadioButton. Чтобы иметь любое практическое значение, виджет должен быть упакован в радио-кнопку.

group :

Существующая группа радио-кнопок, или NULL если вы создаёте новую группу.

Возвращает:

Новая радио-кнопка.


gtk_radio_button_new_from_widget ()

GtkWidget* gtk_radio_button_new_from_widget (GtkRadioButton *group);

Создаёт новый GtkRadioButton, добавляет к group. Как с gtk_radio_button_new(), виджет должен быть упакован в радио-кнопку.

group :

существующий GtkRadioButton.

Возвращает:

Новая радио-кнопка.


gtk_radio_button_new_with_label ()

GtkWidget* gtk_radio_button_new_with_label (GSList *group, const gchar *label);

Создаёт новый GtkRadioButton с текстовой меткой.

group :

Существующая группа ради-кнопок, или NULL если вы создаёте новую группу.

label :

Текстовая метка отображаемая рядом с радио-кнопкой.

Возвращает:

Новая радио-кнопка.


gtk_radio_button_new_with_label_from_widget ()

GtkWidget* gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group, const gchar *label);

Создаёт новый GtkRadioButton с текстовой меткой, добавляет к той же group.

group :

существующий GtkRadioButton.

label :

Текстовая метка отображаемая рядом с радио-кнопкой.

Возвращает:

Новая радио-кнопка.


gtk_radio_button_new_with_mnemonic ()

GtkWidget* gtk_radio_button_new_with_mnemonic (GSList *group, const gchar *label);

Создаёт новый GtkRadioButton содержащий новый ярлык, добавляет к той же group. Ярлык должен быть создан используя gtk_label_new_with_mnemonic(), таким образом символы подчеркивания в label указывают мнемоник для кнопки.

group :

Группа радио-кнопок

label :

Текст кнопки, с символом подчеркивания перед мнемоническим символом

Возвращает:

Новый GtkRadioButton


gtk_radio_button_new_with_mnemonic_from_widget ()

GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *group, const gchar *label);

Создаёт новый GtkRadioButton содержащий ярлык. Ярлык должен быть создан используя gtk_label_new_with_mnemonic(), таким образом символы подчеркивания в label указывают мнемоник для кнопки.

group :

Виджет для получения группы радио-кнопок

label :

Текст кнопки, с символом подчеркивания перед мнемоническим символом

Возвращает:

новый GtkRadioButton


gtk_radio_button_group

#define gtk_radio_button_group gtk_radio_button_get_group

Внимание

gtk_radio_button_group устарел и не должен использоваться во вновь создаваемом коде.

Устаревший макрос совместимости. Вместо него используйте gtk_radio_button_get_group().


gtk_radio_button_set_group ()

void gtk_radio_button_set_group (GtkRadioButton *radio_button, GSList *group);

Устанавливает GtkRadioButton's группу. Обратите внимание на то, что это никогда не изменит вашего интерфейса, поэтому если вы меняете группу, вы должны перестроить пользовательский интерфейс, чтобы отразить внесенные изменения.

radio_button :

GtkRadioButton.

group :

Существующая группа радио-кнопок, такая как возвращаемая из gtk_radio_button_get_group().


gtk_radio_button_get_group ()

GSList*     gtk_radio_button_get_group      (GtkRadioButton *radio_button);

Ищет группу установленную для радио-кнопки.

radio_button :

GtkRadioButton.

Возвращает:

Связанный список содержащий все радио-кнопки той же группы как radio_button.

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

Свойство "group"

  "group"                GtkRadioButton        : Write

Устанавливает новую группу для радио-кнопки.

Детали сигнала

Сигнал "group-changed"

void user_function (GtkRadioButton *style, gpointer user_data) : Run first

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

style :

Объект получающий сигнал

user_data :

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

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

Смотрите также

GtkOptionMenu

Другой способ предложить пользователю выбор единственного из множества.