2014-02-10 3 views
0

Пример кода, как это:Что означает «виджет» делать в PyGTK

class Something(gtk.Window): 
    def __init__(self): 
     ... 
     treeview = gtk.TreeView(store) 

     tree_selection = treeview.get_selection()        
     tree_selection.set_mode(gtk.SELECTION_SINGLE)       
     tree_selection.connect("changed", self.onSelectionChanged) 
     ... 

    def onSelectionChanged(self, tree_selection):        
     (model, pathlist) = tree_selection.get_selected()      
     self.selectedValue = model.get_value(pathlist, 0) - 1 

Как был принят в tree_selection в onSelectionChanged функции? Я вижу много других подобных применений, такие как:

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

Что мы можем использовать этот «виджет» во вторых парах?

ответ

0

Когда вы подключаете обработчик (например, onSelectionChanged) к сигналу (например, "changed"), обработчик добавляется в конец списка обработчиков сигналов этого объекта.

Когда объект затем излучает сигнал, он будет вызывать обработчики (или «обратные вызовы») в этом списке, ставя себя в качестве первого аргумента.

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


Таким образом, вы можете, например, вызовите метод get_selected() объекта TreeSelection, который вызвал ваш метод onSelectionChanged: вы обращаетесь к нему через параметр tree_selection.

Смежные вопросы