Question

maybe a trivial question, but I'm having some severe problems with PyGTK... I'm trying to programm an application indicator for unity with gtk, and I'm trying to set some of my menuitems insensitive (via set_sensitive(False)) after I clicked on them...

Here's a code snippet:

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)

and then I do repeatedly menu_setup via an add_timeout(1000,self.condition_function). This works fine in principle, but I'd prefer that the menuitem turns insensitive immiediately after I clicked it... Sorry for the Noob-question:)

Was it helpful?

Solution

is that what you want?

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)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top