也许是一个微不足道的问题,但是我对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问题:)
答案 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)