The OpenNET Project / Index page

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

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

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

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






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

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