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. В этом случае подчинённый узел невидим.
Как создать группу из двух кнопок радио.
При нажатии на невыбранную кнопку в группе выбранная кнопка получает сигнал “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 | кнопка GtkRadioButton. | |
group | существующая группа радиокнопок, например, возвращённая из | [element-type GtkRadioButton][allow-none] |
gtk_radio_button_get_group ()
GSList *
gtk_radio_button_get_group (GtkRadioButton *radio_button); Возвращает группу, присвоенную радиокнопке.
Параметры
radio_button | кнопка GtkRadioButton. |
Возвращаемое значение
связанный список, содержащий все радиокнопки в той же группе, что и 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 | данные пользователя, установленные при подключении обработчика сигнала. |
Флаги: Выполняется сначала
С: 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.20/GtkRadioButton.html