如何在不使用while循环的情况下在python3中重复一个函数?

时间:2016-03-02 11:53:13

标签: python python-3.x repeat

我在python中有一个函数需要不断运行并检查一些变量。目前我有一个while循环,一切都顺利运行,直到我想使用pyqt小部件,最终导致灾难。

我发现twisted.internet模块在stackoverflow中的另一个线程上,但我不能让它在python3上运行。

是否有另一个模块允许我重复某个函数在python3中每0.01秒运行一次而不会空闲我的代码?

1 个答案:

答案 0 :(得分:5)

如果您正在使用pyqt,这意味着有一个正在运行的事件循环(您的while循环将阻止) - 您可以要求在一定时间后安排函数调用,而无需自行循环。

使用QTimer听起来就像你需要的那样。 This是一个使用它的简单例子。

从第二个链接开始:

timer = QTimer()
timer.timeout.connect(your_function)
timer.start(100)

只要QTimer保持活动状态(如果它被垃圾收集,它就会停止),那就可以做你想要的了。