Учебники

PyGTK — ToggleButton Class

Виджет ToggleButton представляет собой gtk.Button с двумя состояниями — нажатием или активным (или включенным) состоянием и нормальным или неактивным (или выключенным) состоянием. При каждом нажатии кнопки состояние меняется. Состояние ToggleButton также может быть программно изменено методом set_active (). Для переключения состояния кнопки также доступен метод toggled ().

Класс gtk.ToggleButton имеет следующий конструктор —

gtk.ToggleButton(label = None, use_underline = True)

Здесь метка — это тест, отображаемый на кнопке. Свойство use_underline, если True, подчеркивание в тексте указывает, что следующий символ должен быть подчеркнут и использован для ускорителя мнемоники.

Некоторые из важных методов класса gtk.ToggleButton приведены в следующей таблице:

установить активное() При этом для свойства active устанавливается значение True (активно или нажато или включено) или False (неактивно или нормально или выключено)
get_active () Это возвращает состояние кнопки
переключены () Это издает «переключенный» сигнал на кнопке переключения.

Виджет ToggleButton испускает следующий сигнал —

переключается, Это испускается, когда состояние переключателя изменяется либо программно, либо действием пользователя.

Приведенный ниже код демонстрирует использование виджетов ToggleButton.

Два виджета ToggleButtons и Label помещаются в контейнер VBox. Переключаемый сигнал, испускаемый Button1, подключается к функции обратного вызова on_toggled (). В этой функции состояние Button2 устанавливается на True, если для Button1 установлено значение False, и наоборот.

if self.btn1.get_active() == True:
   self.btn2.set_active(False)
else:
   self.btn2.set_active(True)

Он отображает мгновенные состояния кнопок на ярлыке.

пример

Соблюдайте следующий код —

import gtk

 PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Toggle Button")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      vbox = gtk.VBox()
      self.btn1 = gtk.ToggleButton("Button 1")
      self.btn1.connect("toggled", self.on_toggled)
      self.btn2 = gtk.ToggleButton("Button 2")
      self.lbl = gtk.Label()
      
      vbox.add(self.btn1)
      vbox.add(self.btn2)
      vbox.add(self.lbl)
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_toggled(self, widget, data = None):
      if self.btn1.get_active() == True:
         self.btn2.set_active(False)
      else:
         self.btn2.set_active(True)
         state = "Button1 : "+str(self.btn1.get_active())+" 
         Button2 : "+str(self.btn2.get_active())
         self.lbl.set_text(state)
if __name__ == '__main__':
   PyApp()
   gtk.main()

Приведенный выше код генерирует следующий вывод —