Мои сигналы игнорируются! - PullRequest
1 голос
/ 22 июня 2011

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

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

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()

1 Ответ

0 голосов
/ 13 августа 2011

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

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

...