wxPython:卡在.MainLoop()中

wxPython:卡在.MainLoop()中,python,wxpython,Python,Wxpython,我不是一个有经验的程序员。这可能是一个需要解决的简单问题 我有一个应该每两分钟运行一次的函数。此函数位于一个简单的wxPython系统托盘程序中。问题是我不知道如何运行该函数,因为wxPython从未离开.MainLoop()。我应该把函数放在哪里 代码如下:(我省略了函数和import,因为它不相关。) 我从未使用过wxPython,但您可以使用Python标准库的线程模块 一个简单的例子: import threading def work(): threading.Timer(

我不是一个有经验的程序员。这可能是一个需要解决的简单问题

我有一个应该每两分钟运行一次的函数。此函数位于一个简单的wxPython系统托盘程序中。问题是我不知道如何运行该函数,因为wxPython从未离开.MainLoop()。我应该把函数放在哪里

代码如下:(我省略了函数和import,因为它不相关。)


我从未使用过wxPython,但您可以使用Python标准库的线程模块

一个简单的例子:

import threading

def work(): 
    threading.Timer(0.25, work).start()
    print "stackoverflow"

work()

看看这个线程(示例如下):

wxPython与大多数GUI框架一样,使用事件驱动编程模型。这意味着您的程序的某些部分是根据用户(如按键、菜单选择等)系统或其他程序的操作运行的。剩下的时间,它在主循环中等待这些事情发生


对于像您这样的情况,有一个wx.Timer类,它可以触发一次事件,或者在N毫秒之后周期性地触发事件。如果您为计时器事件绑定了一个事件处理程序,那么当计时器过期时将调用该处理程序。

它确实可以使用线程模块工作。非常感谢你!
import threading

def work(): 
    threading.Timer(0.25, work).start()
    print "stackoverflow"

work()