The OpenNET Project / Index page

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

Каталог документации / Раздел "Perl" / Оглавление документа
Чекбоксы

Иерархия наследования

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' сигналов "снятие выделения" и "новое выделение".




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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