2011-07-10 30 views
1

我有這一個切換按鈕的PyGTK的標籤一個簡單的回調函數:爲什麼在點擊工具按鈕的PyGTK的回調執行兩次時點擊一次

def langSelectHandler(self, widget, callback_data=None): 
    if self.lang == "fr": 
     self.lang = "de" 
     print "changed to de" 
     widget.set_label("Deutsch") 
    else: 
     self.lang = "fr" 
     print "changed to fr" 
     widget.set_label("Français") 

按鈕連接這樣的:

self.langSelect.connect("clicked", self.langSelectHandler) 

(我使用每次調用產生的隨機數字驗證了重複呼叫,它們是不同的) 我的問題是,回調會執行兩次,因此會切換回其舊值,因此不會顯示任何更改。爲什麼到底是這種情況,以及如何防止這種情況?

感謝, 朱利安

+2

它不應該。我不太瞭解PyGtk,但是也許你使用連接兩次? – utdemir

+0

謝謝,這是從我的空地文件裏面「盲」連接我在編碼時忘記了:)我今天剛開始用gtk編程,所以對我來說這是一個相當新的話題 – Julian

+0

@Julian如果你解決了這個問題,你應該發佈解決方案作爲你的問題的答案,然後'接受'答案。這可以讓其他用戶更容易找到解決方案,並看到您的問題已得到解答。 –

回答

1

在我的評論中指出(見下文後的第2項),我做了通過代碼,以及通過其空地導致2個呼叫連接。如果遇到類似或相同的問題,請檢查該問題。