краткое описание#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() может использоваться для определения была ли кнопка выбрана или с неё снят выбор. деталиgtkradiobuttontypedef struct _gtkradiobutton gtkradiobutton; содержит приватные данные которые должны читаться и управляться функциями приведёнными ниже. gtk_radio_button_new ()gtkwidget* gtk_radio_button_new (gslist *group); создаёт новый gtkradiobutton. чтобы иметь любое практическое значение, виджет должен быть упакован в радио-кнопку.
gtk_radio_button_new_from_widget ()gtkwidget* gtk_radio_button_new_from_widget (gtkradiobutton *group); создаёт новый gtkradiobutton, добавляет к group. как с gtk_radio_button_new(), виджет должен быть упакован в радио-кнопку.
gtk_radio_button_new_with_label ()gtkwidget* gtk_radio_button_new_with_label (gslist *group, const gchar *label); создаёт новый gtkradiobutton с текстовой меткой.
gtk_radio_button_new_with_label_from_widget ()gtkwidget* gtk_radio_button_new_with_label_from_widget (gtkradiobutton *group, const gchar *label); создаёт новый gtkradiobutton с текстовой меткой, добавляет к той же group.
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 указывают мнемоник для кнопки.
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 указывают мнемоник для кнопки.
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 группу. обратите внимание на то, что это никогда не изменит вашего интерфейса, поэтому если вы меняете группу, вы должны перестроить пользовательский интерфейс, чтобы отразить внесенные изменения.
gtk_radio_button_get_group ()gslist* gtk_radio_button_get_group (gtkradiobutton *radio_button); ищет группу установленную для радио-кнопки.
детали свойствсвойство "group" "group" gtkradiobutton : write устанавливает новую группу для радио-кнопки. детали сигналасигнал "group-changed"void user_function (gtkradiobutton *style, gpointer user_data) : run first издаётся когда изменяется группа радио-кнопок которой принадлежит радио-кнопка. это используется то когда, когда радио-кнопка будучи одна переключается, чтобы стать частью группы из двух и более кнопок, или наоборот, когда кнопка перемещается из группы двух или более кнопок в единичное состояние, но не когда состав группы к которой принадлежит кнопка изменяется.
начиная с версии 2.4 смотрите также
|