| |
GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
GtkRadioButtonGtkRadioButton Выбор из множества контроль-кнопок |
#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() может использоваться для определения была ли кнопка выбрана или с неё снят выбор.
typedef struct _GtkRadioButton GtkRadioButton;
Содержит приватные данные которые должны читаться и управляться функциями приведёнными ниже.
GtkWidget* gtk_radio_button_new (GSList *group);
Создаёт новый GtkRadioButton. Чтобы иметь любое практическое значение, виджет должен быть упакован в радио-кнопку.
group : |
Существующая группа радио-кнопок, или NULL если вы создаёте новую группу. |
Возвращает: |
Новая радио-кнопка. |
GtkWidget* gtk_radio_button_new_from_widget (GtkRadioButton *group);
Создаёт новый GtkRadioButton, добавляет к group. Как с gtk_radio_button_new(), виджет должен быть упакован в радио-кнопку.
group : |
существующий GtkRadioButton. |
Возвращает: |
Новая радио-кнопка. |
GtkWidget* gtk_radio_button_new_with_label (GSList *group, const gchar *label);
Создаёт новый GtkRadioButton с текстовой меткой.
group : |
Существующая группа ради-кнопок, или NULL если вы создаёте новую группу. |
label : |
Текстовая метка отображаемая рядом с радио-кнопкой. |
Возвращает: |
Новая радио-кнопка. |
GtkWidget* gtk_radio_button_new_with_label_from_widget (GtkRadioButton *group, const gchar *label);
Создаёт новый GtkRadioButton с текстовой меткой, добавляет к той же group.
group : |
существующий GtkRadioButton. |
label : |
Текстовая метка отображаемая рядом с радио-кнопкой. |
Возвращает: |
Новая радио-кнопка. |
GtkWidget* gtk_radio_button_new_with_mnemonic (GSList *group, const gchar *label);
Создаёт новый GtkRadioButton содержащий новый ярлык, добавляет к той же group. Ярлык должен быть создан используя gtk_label_new_with_mnemonic(), таким образом символы подчеркивания в label указывают мнемоник для кнопки.
group : |
Группа радио-кнопок |
label : |
Текст кнопки, с символом подчеркивания перед мнемоническим символом |
Возвращает: |
Новый GtkRadioButton |
GtkWidget* gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *group, const gchar *label);
Создаёт новый GtkRadioButton содержащий ярлык. Ярлык должен быть создан используя gtk_label_new_with_mnemonic(), таким образом символы подчеркивания в label указывают мнемоник для кнопки.
group : |
Виджет для получения группы радио-кнопок |
label : |
Текст кнопки, с символом подчеркивания перед мнемоническим символом |
Возвращает: |
новый GtkRadioButton |
#define gtk_radio_button_group gtk_radio_button_get_group
gtk_radio_button_group устарел и не должен использоваться во вновь создаваемом коде.
Устаревший макрос совместимости. Вместо него используйте gtk_radio_button_get_group().
void gtk_radio_button_set_group (GtkRadioButton *radio_button, GSList *group);
Устанавливает GtkRadioButton's группу. Обратите внимание на то, что это никогда не изменит вашего интерфейса, поэтому если вы меняете группу, вы должны перестроить пользовательский интерфейс, чтобы отразить внесенные изменения.
radio_button : |
|
group : |
Существующая группа радио-кнопок, такая как возвращаемая из gtk_radio_button_get_group(). |
GSList* gtk_radio_button_get_group (GtkRadioButton *radio_button);
Ищет группу установленную для радио-кнопки.
radio_button : |
|
Возвращает: |
Связанный список содержащий все радио-кнопки той же группы как radio_button. |
"group" GtkRadioButton : Write
Устанавливает новую группу для радио-кнопки.
void user_function (GtkRadioButton *style, gpointer user_data) : Run first
Издаётся когда изменяется группа радио-кнопок которой принадлежит радио-кнопка. Это используется то когда, когда радио-кнопка будучи одна переключается, чтобы стать частью группы из двух и более кнопок, или наоборот, когда кнопка перемещается из группы двух или более кнопок в единичное состояние, но не когда состав группы к которой принадлежит кнопка изменяется.
style : |
Объект получающий сигнал |
user_data : |
Пользовательские данные устанавливаемые когда подключается обработчик. |
Начиная с версии 2.4
Другой способ предложить пользователю выбор единственного из множества. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |