Home
Categories
WIKI
Topic
User
LANGUAGE:
中文
English
pyqt中如何实现类似死循环的功能?
社区开发
3581
views ·
9
replies ·
To
floor
Go
kiscore
deepin
2014-04-10 19:06
Author
实例是这样的,我写了一个QT窗口,可以通过鼠标点击按钮触发一个动作。如果不手动点击按钮来触发的话,就可以在后台每5分钟执行一次这个动作。
就这个每5分钟来触发一次这个动作代码如何实现?用while True: + time.sleep()来做的话,while循环体之外的代码一律不执行了。
把while循环放在最后的话,只要不触发窗口关闭动作:sys.exit(app.exec_())这个代码之后的任何动作也不会执行。
放在sys.exit(app.exec_()) 前面则窗口出不来!
用多线程来thread while循环体的话,窗口出来后会很卡...
Deepin的开发大大们,我google了2天,搜索的关键词也许不对,一直没找到答案。
能否指点一二,感激不禁。
Reply
Like 0
Favorite
View the author
All Replies
nohappiness
deepin
2014-04-10 19:12
#1
为什么多线程窗口会卡?不太明白
PS:不懂pyqt开发哈
Reply
Like 0
View the author
kiscore
deepin
2014-04-10 19:14
#2
为什么多线程窗口会卡?不太明白
PS:不懂pyqt开发哈
表现为:单机按钮,鼠标箭头转圈中,几秒钟后出现响应。效率很慢。勉强能跑起来的感觉。
Reply
Like 0
View the author
kiscore
deepin
2014-04-10 19:16
#3
为什么多线程窗口会卡?不太明白
PS:不懂pyqt开发哈
其实多线程就是:程序一会去执行下线程1,然后再去执行线程2,如此反复循环。所以,我觉得这个问题与监听事件有关,但是,初学者需要摸索下...
Reply
Like 0
View the author
a287740928
deepin
2014-04-10 20:55
#4
其实pyqt我也不懂,我看你第一段意思,我想的很简单,首先设置个计时器,每秒执行一次if语句,if语句内容为
if i<300
then i++;
else
你需要的程序;//到达5分钟需要执行的语句
如果你需要鼠标点击就清零计时器的话,就加个条件判断就应该可以了,不知道是不是你要的意思
Reply
Like 0
View the author
a287740928
deepin
2014-04-10 20:58
#5
qt里面有个qtimer
Reply
Like 0
View the author
kiscore
deepin
2014-04-10 21:26
#6
qt里面有个qtimer
hi~,非常感谢你的回复。
说明白点就是这个意思:
while True:
print "11111"#这个只是个架设,实际调用一个函数。
time.sleep(300)#休眠300秒然后无限循环。
跟鼠标点击没任何关系。鼠标点击就立即调用那个函数而已,点不点,循环体都一直运行。
好郁闷啊~!
Reply
Like 0
View the author
lovesnow
deepin
2014-04-10 21:43
#7
使用QTimer 8-)
Reply
Like 0
View the author
kiscore
deepin
2014-04-10 21:52
#8
使用QTimer 8-)
我试试哈。 ;)
Reply
Like 0
View the author
kiscore
deepin
2014-04-10 22:08
#9
感谢5楼7楼2位朋友的建议,也感谢2楼的回复!问题解决了!
就是Qtimer,谢谢大家!!敢问7楼是Deepin开发者么?
Reply
Like 0
View the author
Please
sign
in first
Featured Collection
Change
UOS AI 2.8 Released! Three New Intelligent Agents & Major Evolution
Solid Q&A | deepin 25 Common Questions – The Immutable System Edition
New Thread
Popular Events
More
就这个每5分钟来触发一次这个动作代码如何实现?用while True: + time.sleep()来做的话,while循环体之外的代码一律不执行了。
把while循环放在最后的话,只要不触发窗口关闭动作:sys.exit(app.exec_())这个代码之后的任何动作也不会执行。
放在sys.exit(app.exec_()) 前面则窗口出不来!
用多线程来thread while循环体的话,窗口出来后会很卡...
Deepin的开发大大们,我google了2天,搜索的关键词也许不对,一直没找到答案。
能否指点一二,感激不禁。