2013-01-02 85 views
0

也許是一個微不足道的問題,但我有一些嚴重的問題與PyGTK ... 我試圖編程一個應用程序與gtk的統一性指標,我試圖設置我的一些menuitems不敏感(通過set_sensitive(False))之後,我點擊了他們...檢查是否選擇了菜單項; pygtk

這裏有一個代碼片段:

class CheckNAS: 
    def __init__(self): 
     self.ind = appindicator.Indicator("debian-doc-menu", "indicator- messages",appindicator.CATEGORY_APPLICATION_STATUS) 
     self.ind.set_status (appindicator.STATUS_ACTIVE) 
     self.ind.set_attention_icon("icon1") 
     self.ind.set_icon("icon2") 

    def menu_setup(self): 
     self.quit_item = gtk.MenuItem("QUIT") 
     self.quit_item.connect("activate",self.quit) 

     if condition_function()==True: 
     self.quit.set_sensitive(False) 
     self.quit_item.show() 
     self.menu.append(self.quit_item) 

,然後我通過反覆add_timeout(1000,self.condition_function)menu_setup。這原則上工作正常,但我更喜歡菜單項在點擊它後不知不覺地變得不敏感... 對不起Noob問題:)

+0

你在'self.quit.set_sensitive(False)'中有一個拼寫錯誤,應該是'self.quit_item.set_sensitive(False)'。這是問題嗎? – deinonychusaur

+0

不幸的是,這只是因爲我重新排列了一些代碼 – wa4557

+1

你能提供一個最小的代碼來產生問題並且可以運行嗎?你應該可以運行'set_sensitive(False)'並保留它,我自己在應用程序中沒有問題。所以你的問題可能在其他地方。 – deinonychusaur

回答

2

是你想要的嗎?

class CheckNAS: 
    def __init__(self): 
     self.ind = appindicator.Indicator("debian-doc-menu", 
     "indicator-messages",appindicator.CATEGORY_APPLICATION_STATUS) 
     self.ind.set_status (appindicator.STATUS_ACTIVE) 
     self.ind.set_attention_icon("icon1") 
     self.ind.set_icon("icon2") 

    def menu_setup(self): 
     self.quit_item = gtk.MenuItem("QUIT") 
     self.quit_item.connect("activate",self.sensitive) 
     self.quit_item.show() 
     self.menu.append(self.quit_item) 

    def sensitive(self,widget): 
     if widget.get_sensitive(): 
     widget.set_sensitive(False) 
     else: 
     widget.set_sensitive(True) 
+0

是的謝謝!那正是我正在尋找的。我沒有意識到我可以使用小部件作爲函數的參數。我仍然在學習 – wa4557

+0

是否可以運行連接。換句話說,讓按鈕不敏感讓我們說5秒,然後再使它敏感? – wa4557

+0

沒有必要將對象連接到第二個信號。只需在「敏感」功能中做所有事情。例如,你可以導入'time'模塊('import time'在你的文件的第一行,''sensitive''中的time.sleep(5)'''widget.set_sensitive(False)\ time.sleep 5)\ widget.set_sensitive(True)')) – jkd

相關問題