簡體   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