首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PyGTK中获取要阻塞的接口

在PyGTK中获取要阻塞的接口
EN

Stack Overflow用户
提问于 2013-12-12 09:58:22
回答 1查看 62关注 0票数 1

我正在尝试使用Python编写一个WiFi管理接口。

用户在gtk.TreeView中看到可用网络的列表。然后,他可以选择通过单击一个按钮重新扫描无线网络。无论出于什么原因,重装过程都是非常快速的。事实上,点击按钮的速度太快了,感觉好像什么都没发生过,尽管网络列表确实被重新屏蔽了。

我想要做的是添加几秒钟的延迟,其中接口块和我显示一个gtk.Spinner,这样用户就可以看到我用来显示网络列表的gtk.TreeView被清除并重新填充。

显然,time.sleep()不是正确的方法。有一种优雅的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-12 10:26:56

关于LOC,我能想出的最短答案是:

代码语言:javascript
复制
from threading import Thread
import gobject

gobject.threads_init()

time_to_wait = 2.0      # time in seconds
nonblocking_wait = Thread(target=sleep, args=(timetowait,))
nonblocking_wait.start()

while nonblocking_wait.is_alive():
    nonblocking_wait.join(.05)
    gtk.main_iteration_do(True)     # blocks if no event is pending

第二次,我意识到,对一些读者来说,睡眠线程的相关性可能是模糊的。它的目的是建立time_to_wait + 0.05秒(+开销)的最大时间限制!您可以使用计数器或类似的方法来完成这个任务,但是这样可以防止cpu在空闲循环中产生无用的负载。

这样,gtk仍然可以处理绘图更新。

任何进度条更新或任何东西都必须放置到while循环中。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20540244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档