Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Взаимодействие между элементами [RSS Feed]

#1 Июнь 20, 2017 15:19:38

Chocobo
Зарегистрирован: 2014-10-07
Сообщения: 14
Репутация: +  1  -
Профиль   Отправить e-mail  

Взаимодействие между элементами

Добрый день
Интересует довольно базовый вопрос

есть окошко с ComboBoxText и Switch, в первом обычный текстовый список значений, второй живет сам по себе.


Хотелось бы привязать событие измениения выбора в списке - на состояние переключателя.
Т.е. ткнул на определенную строку в комбобоксе, чекнул откуда нибудь bool и скормил в switcher.set_active()

код класса

 class ComboBoxWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="ComboBox Example")
        self.set_border_width(10)
        vbox = Gtk.Box(spacing=6)
        ifaces_combo = Gtk.ComboBoxText()
        ifaces_combo.set_entry_text_column(0)
        ifaces_combo.connect("changed", self.on_ifaces_combo_changed, self.on_ifaces_combo_changed)
        for iface in ifaces:
            ifaces_combo.append_text(iface)
        switch = Gtk.Switch()
        switch.connect("notify::active", self.on_switch_activated)
        switch.set_active(False)
        vbox.pack_start(ifaces_combo, False, False, 0)
        vbox.pack_start(switch, True, True, 0)
        self.add(vbox)
    def on_ifaces_combo_changed(self, combo):
        sel_iface = combo.get_active_text()
        if sel_iface != None:
            print("Selected interface =%s" % sel_iface)
    def on_switch_activated(self, switch, gparam):
        if switch.get_active():
            state = "on"
        else:
            state = "off"
        print("Switch was turned", state)
win = ComboBoxWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

Thanks in advance

Офлайн

  • Начало
  • » GUI
  • » Взаимодействие между элементами[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version