PyGTK - класс ToggleButton
Виджет ToggleButton - это gtk.Button с двумя состояниями - a pressed or active (или включено) состояние и normal or inactive (or off)штат. Каждый раз при нажатии кнопки состояние меняется. Состояние 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()
Приведенный выше код генерирует следующий вывод -