繁体   English   中英

如何首先将MenuItem设置为敏感,然后又将其设置为不敏感? Python GTK

[英]How can I first set a MenuItem sensitive and then insensitive again? Python GTK

GTK如何在单击后将菜单项设置为不敏感,但在大约5秒钟后再次使其变得敏感。 如果我做这样的事情,那是行不通的(我不知道为什么不这样做)

self.shutdown_item.connect("activate",self.shutdown)
self.shutdown_item.connect("activate",self.sensitiveshutdown)


def sensitiveshutdown(self,widget):
    shutdown_item.set_sensitive(False)
    time.sleep(5)
    shutdown_item.set_sensitive(True)

不起作用。 它将gui冻结5秒钟,但该按钮保持敏感状态。 有没有办法做到这一点?

您无法停止整个程序,GTK +需要运行其主循环才能为UI提供服务。

您应该使用超时

因此,@ unwind指出的方法是超时(您需要导入gobject

self.shutdown_item.connect("activate",self.shutdown)
self.shutdown_item.connect("activate",self.sensitiveshutdown)


def sensitiveshutdown(self, widget):
    self.shutdown_item.set_sensitive(False)
    gobject.timeout_add(5000, self.reviveShutDown)

def reviveShutDown(self):
    self.shutdown_item.set_sensitive(True)
    return False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM