GtkRadioButton
GtkRadioButton — Выбор из нескольких флажков
Функции
Свойства
| GtkRadioButton * | group | Write |
Сигналы
| void | group-changed | Run First |
Типы и значения
| struct | GtkRadioButton |
Иерархия объектов
GObject
╰── GInitiallyUnowned
╰── GtkWidget
╰── GtkContainer
╰── GtkBin
╰── GtkButton
╰── GtkToggleButton
╰── GtkCheckButton
╰── GtkRadioButton
Реализованные интерфейсы
GtkRadioButton реализует AtkImplementorIface, GtkBuildable, GtkActionable и GtkActivatable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
Один радиокнопка выполняет ту же основную функцию, что и 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().
Список групп не нужно освобождать, так как каждая GtkRadioButton удалит себя и элемент списка при уничтожении.
CSS-узлы
GtkRadioButton с индикатором (см. gtk_toggle_button_set_mode()) имеет основной CSS-узел с именем radiobutton и под-узел с именем radio.
GtkRadioButton без индикатора меняет имя своего основного узла на button и добавляет к нему класс стиля .radio. Под-узел в этом случае невидим.
Как создать группу из двух радиокнопок.
При нажатии на невыбранную кнопку в группе нажатая кнопка получает сигнал “toggled”, как и ранее выбранная кнопка. В обработчике сигнала “toggled”, можно использовать gtk_toggle_button_get_active() для определения, была ли кнопка выбрана или снята с выбора.
Функции
gtk_radio_button_new ()
GtkWidget *
gtk_radio_button_new (GSList *group); Создаёт новую кнопку GtkRadioButton. Для её практического применения необходимо добавить виджет в кнопку.
Параметры
group | существующая группа радиокнопок, или | [element-type GtkRadioButton][allow-none] |
Возвращает
новую кнопку радио.
gtk_radio_button_new_from_widget ()
GtkWidget *
gtk_radio_button_new_from_widget (GtkRadioButton *radio_group_member); Создаёт новую GtkRadioButton, добавляя её в ту же группу, что и radio_group_member . Как и в случае с gtk_radio_button_new(), виджет необходимо добавить в кнопку.
[constructor]
Параметры
radio_group_member | существующая GtkRadioButton. | [allow-none] |
Возвращает
новую кнопку радио.
[transfer none]
gtk_radio_button_new_with_label ()
GtkWidget * gtk_radio_button_new_with_label (GSList *group,const gchar *label);
Создаёт новую GtkRadioButton с текстовой меткой.
Параметры
group | существующая группа радиокнопок, или | [element-type GtkRadioButton][allow-none] |
label | текстовая метка, которая будет отображаться рядом с кнопкой. |
Возвращает
новую кнопку радио.
gtk_radio_button_new_with_label_from_widget ()
GtkWidget * gtk_radio_button_new_with_label_from_widget (GtkRadioButton *radio_group_member,const gchar *label);
Создаёт новую GtkRadioButton с текстовой меткой, добавляя её в ту же группу, что и radio_group_member .
[constructor]
Параметры
radio_group_member | виджет для получения группы радиокнопок или | [allow-none] |
label | строка текста, которая будет отображаться рядом с кнопкой. |
Возвращает
новую кнопку радио.
[transfer none]
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 | группа радиокнопок, или | [element-type GtkRadioButton][allow-none] |
label | текст кнопки, с подчёркиванием перед мнемонической буквой |
Возвращает
новую GtkRadioButton
gtk_radio_button_new_with_mnemonic_from_widget ()
GtkWidget * gtk_radio_button_new_with_mnemonic_from_widget (GtkRadioButton *radio_group_member,const gchar *label);
Создаёт новую GtkRadioButton с меткой. Метка будет создана с помощью gtk_label_new_with_mnemonic(), поэтому подчёркивания в label указывают на мнемонику кнопки.
[constructor]
Параметры
radio_group_member | виджет для получения группы радиокнопок или | [allow-none] |
label | текст кнопки, с подчёркиванием перед мнемонической буквой |
gtk_radio_button_set_group ()
void gtk_radio_button_set_group (GtkRadioButton *radio_button,GSList *group);
Устанавливает группу для GtkRadioButton. Обратите внимание, что это никак не изменяет макет вашего интерфейса, поэтому, если вы изменяете группу, вам, вероятно, потребуется перестроить пользовательский интерфейс, чтобы отразить эти изменения.
Параметры
radio_button | ||
group | существующая группа радиокнопок, например, возвращённая из | [element-type GtkRadioButton][allow-none] |
gtk_radio_button_get_group ()
GSList *
gtk_radio_button_get_group (GtkRadioButton *radio_button); Получает группу, назначенную для кнопки радио.
Параметры
radio_button |
Возвращает
связный список, содержащий все кнопки радио в той же группе, что и radio_button . Возвращаемый список принадлежит кнопке радио и не должен быть изменён или освобождён.
[element-type GtkRadioButton][transfer none]
gtk_radio_button_join_group ()
void gtk_radio_button_join_group (GtkRadioButton *radio_button,GtkRadioButton *group_source);
Присоединяет объект GtkRadioButton к группе другого объекта GtkRadioButton
Используйте эту функцию в языковых связках вместо методов gtk_radio_button_get_group() и gtk_radio_button_set_group()
Типичный способ создания группы радиокнопок:
radiobutton ├── radio ╰── <child>
Параметры
radio_button | объект GtkRadioButton | |
group_source | объект радиокнопки, к чьей группе мы присоединяемся, или | [allow-none] |
С: 3.0
Типы и значения
struct GtkRadioButton
struct GtkRadioButton;
Подробности свойств
Свойство “group”
“group” GtkRadioButton *
Устанавливает новую группу для радиокнопки.
Владелец: GtkRadioButton
Флаги: Запись
Подробности сигналов
Сигнал “group-changed”
void user_function (GtkRadioButton *button, gpointer user_data)
Выдаётся, когда изменяется группа радиокнопок, к которой принадлежит радиокнопка. Этот сигнал генерируется, когда радиокнопка переключается с одиночного состояния на участие в группе из 2 или более кнопок, или наоборот, и когда кнопка перемещается из одной группы из 2 или более кнопок в другую, но не тогда, когда изменяется состав группы, к которой принадлежит кнопка.
Параметры
button | объект, получивший сигнал | |
user_data | пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Выполнение в первую очередь
С: 2.4
См. также
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.24/GtkRadioButton.html