2010-11-03 37 views
0

我剛開始使用PyGtk,並且無法理解Windows的交互。如何在PyGtk中的兩個類/窗口之間傳遞變量?

我非常簡單的問題如下。
假設我有一個類,只是創建一個文本輸入字段的窗口。當單擊該窗口中的「確定」按鈕時,我希望將輸入字段中的文本傳遞到由另一個類創建的另一個窗口,並帶有gtk菜單,並創建一個包含文本字段內容的新條目。

我該如何實施?

回答

2

讓我們打電話給A菜單,並用窗口B輸入文字。 如果我理解正確A呼叫B,並且在B中按下確定按鈕時,A需要更新其菜單。

在這種情況下,你可以在A中創建一個回調函數,當B的ok按鈕被按下時被調用。當您創建B時,您可以傳遞此回調,例如:

class B(gtk.Window): 
    def __init__(self, callback): 
     gtk.Window.__init__(self) 

     self.callback = callback 
     # Create components: 
     # self.entry, self.ok_button ... 

     self.ok_button.connect("clicked", self.clicked) 

    def clicked(self, button): 
     self.callback(self.entry.get_text()) 

class A(gtk.Window): 
    def create_popup(self): 
     popup = B(self.popup_callback) 
     popup.show() 

    def popup_callback(self, text): 
     # Update menu with new text 
     # ... 
相關問題