| |
![]() |
Иерархия наследования
Object +--- Widget +--- Container +--- Bin +--- Button +--- ToggleButton +--- CheckButton
Чекбоксы наследуют свойства и функции тоггля, но с небольшим различием. В случае чекбокса название располагается рядом с полем для галочки(или круглой кнопки и т.д. - зависит от темы оконного менеджера). Создание чекбокса происходит как обычно:
new Gtk::CheckButton(); new Gtk::CheckButton( $label );
Соответственно первая строка - просто чекбокс, вторая - чекбокс с лейблом. Обработка евентов оналогичо тогглям.
Радиокнопки
Object +--- Widget +--- Container +--- Bin +--- Button +--- ToggleButton +--- CheckButton +--- RadioButton
поведение радиокнопок аналогично их поведению при использовании html и удобно, когда необходимо выбрать что-то из очень короткого списка позиций.
Создать группу радиокнопок можно при помощи следующих строк:
new Gtk::RadioButton( $label ); new Gtk::RadioButton( $label, $button );
Видно, что второй способ создания радиокнопки имеет дополнительный параметр $button, который позволяет группировать кнопки относительно начальной кнопки. Следующий пример более четко поясняет эту концепцию группировки(связывания нескольких радиокнопок):
#создаем первую кнопку и добавляем её в бокс $radio1 = new Gtk::RadioButton( "button 1" ); $box->add( $radio1 ); # создаем вторую кнопку и добавляем её в бокс(к первой ) $radio2 = new Gtk::RadioButton( "button 2", $radio1 ); $box->add( $radio2 ); # создаем третью кнопку и добавляем её в бокс # и связываем её со второй кнопкой $radio3 = new Gtk::RadioButton( "button 3", $radio1 ); $box->add( $radio3 ); # создаем 4-ю кнопку, и связываем её с третьей $radio4 = new Gtk::RadioButton( "button 4", $radio3 ); $box->add( $radio4 );
Если необходимо выделять по дефолту какую-то из кнопок из группы, то это делается строчкой
$togglebutton-> set_active ($state);
Действие аналогично действию тогглов, В группе радиокнопок только одна может быть активной. Когда происходит смена выделения радиокнопки, то происходит испускание двух 'toggled' сигналов "снятие выделения" и "новое выделение".
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |