检查是否选择了menuitem; PyGTK的

时间:2013-01-02 15:55:47

标签: pygtk ubuntu-unity

也许是一个微不足道的问题,但是我对PyGTK有一些严重的问题...... 我正在尝试使用gtk编写一个统一的应用程序指示器,并且在点击它们之后我试图设置一些不敏感的菜单项(通过set_sensitive(False))...

以下是代码段:

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)

然后我通过menu_setup反复add_timeout(1000,self.condition_function)。这在原理上工作得很好,但我更喜欢在点击它之后,menuitem变得麻木不仁...... 抱歉Noob问题:)

1 个答案:

答案 0 :(得分: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)