GtkRadioButton
GtkRadioButton — Выбор из нескольких кнопок
Функции
Свойства
| GtkRadioButton * | группа | Запись |
Сигналы
Типы и значения
| 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. В этом случае дочерний узел невидим.
Как создать группу из двух кнопок радио.
Когда нажимается невыбранная кнопка в группе, нажатая кнопка получает сигнал «нажата», как и ранее выбранная кнопка. В обработчике «нажата» можно использовать 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 | кнопка GtkRadioButton. | |
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-changed”
void user_function (GtkRadioButton *button, gpointer user_data)
Выдается, когда изменяется группа радиокнопок, к которой принадлежит радиокнопка. Этот сигнал генерируется, когда радиокнопка переходит от одиночной к группе из 2 или более кнопок, или наоборот, и когда кнопка перемещается из одной группы из 2 или более кнопок в другую, но не при изменении состава группы, к которой принадлежит кнопка.
Параметры
button | объект, получивший сигнал | |
user_data | пользовательские данные, заданные при подключении обработчика сигнала. |
Флаги: Run First
С: 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.22/GtkRadioButton.html