0

也许是一个微不足道的问题,但我在使用 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). 原则上这很好用,但我希望菜单项在我点击它后立即变得不敏感......抱歉这个菜鸟问题:)

4

1 回答 1

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)
于 2013-01-03T09:57:58.493 回答