The OpenNET Project / Index page

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

Каталог документации / Раздел "Perl" / Оглавление документа
Кнопки Toggle

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

Object
   +--- Widget
         +--- Container
               +--- Bin
                     +--- Button
                           +--- ToggleButton

Кнопки Toggle отличны от нормальных тем, что находятся в одном из состояний "нажато" или "не нажато".

Создание кнопок Toggle

new Gtk::ToggleButton();

new Gtk::ToggleButton( $label );

Реакция кнопки на запросы аналогична тому, что было описано выше про виджеты. Соответственно первая строчка создает просто кнопку, а вторая создает кнопку с лейблом.

Toggle сигналы.

Чтобы восстановить состояние toggle виджета, включая радиокнопки или чекбоксы, используется приведенная ниже конструкция. Код проверяет состояние кнопки, обращаясь к активной области виджета, содержащего toggle. Интересующий сигнал, посылаемый кнопкой(радио или чекбоксом), зовется 'toggled'. Чтобы проверить состояние этих кнопок, необходимо выставить обработчик сигнала чтобы поймать toggled сигнал:

sub toggle_button_callback
  {
    $togglebutton = $_[0];

    if ( $togglebutton->active )
      {
        # Если тоггл нажат, то выполнится этот участок кода
      }
    else
      {
        # Если тоггл отжат, то выполнится этот участок кода
      }
    }

Состояние кнопки toggle

Чтобы сэмулировать нажатие тоггль-кнопки, её детей(все это относится к чекбоксам и радиокнопкам), используется функция set_active():

$togglebutton->set_active( $state ); 

Когда срабатывает эта функция, то в системе проходит сигнал 'clicked' но не 'toggled'.

Чтобы узнать состояние кнопки, необходимо вызвать функцию get_active():

 $togglebutton->get_active();

Строчка $togglebutton->toggled(); испускает 'toggled' сигнал;




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

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