Мои сигналы игнорируются!

1

Поэтому я разработал пользовательский интерфейс в Glade и кодирую программу на Python. По какой-то причине все мои сигналы игнорируются! Хотя я правильно их подключил (я думаю), нажатие на кнопки ничего не делает!

Ниже приведен код, который я использую для загрузки ui и подключения сигналов. Может ли кто-нибудь увидеть, ПОЧЕМУ, что их можно игнорировать?

class mySampleClass(object):

def __init__(self):
    self.uiFile = "MainWindow.glade"
    self.wTree = gtk.Builder()
    self.wTree.add_from_file(self.uiFile)

    self.window = self.wTree.get_object("winMain")
    if self.window:
        self.window.connect("destroy", gtk.main_quit)

        dic = { "on_btnExit_clicked" : self.clickButton, "on_winMain_destroy" : gtk.main_quit }
        self.wTree.connect_signals(dic)
        self.window.show()
    else:
        print "Could not load window"
        sys.exit(1)


def clickButton(self, widget):
    print "You clicked exit!"


def exit(self, widget):
    gtk.main_quit()

def update_file_selection(self, widget, data=None):
    selected_filename = FileChooser.get_filename()
    print selected_filename

if __name__ == "__main__":
MyApp = MySampleClass()
gtk.main()
  • 2
    Когда я читал заголовок, я думал, что предметом вопросов были отношения.
  • 0
    Self.wTree.connect_signals (dic) возвращает None?
Показать ещё 1 комментарий
Теги:
gtk
pygtk

1 ответ

0
Лучший ответ

Я не совсем уверен, что это ответ, но я знаю, что несколько объектов PyGTK не могут сами отправлять сигналы - gtk.Image и gtk.Label - это два таких примера. Решение состоит в том, чтобы поместить виджет внутри поля события (gtk.EventBox) и связать события с этим.

Однако я не знаю, если это так, например, с древовидными объектами. Тем не менее, стоит исследовать, имхо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню