如何在一段时间内刷新Python脚本?

时间:2011-08-03 08:49:59

标签: python user-interface wxpython refresh reload

所以我创建了一个包含使用wxPython的GUI的类。 你是如何做到这一点的,以便每分钟刷新一次?

3 个答案:

答案 0 :(得分:2)

对于间隔发生的事情,请使用Timer。来自WxPyWiki

def on_timer(event):
    pass  # do whatever

TIMER_ID = 100  # pick a number
timer = wx.Timer(panel, TIMER_ID)  # message will be sent to the panel
timer.Start(100)  # x100 milliseconds
wx.EVT_TIMER(panel, TIMER_ID, on_timer)  # call the on_timer function
  

出于某种原因,当我尝试它时,这段代码不起作用。原因是计时器必须是班级成员。如果您将该代码放入 init ()方法并添加self。在计时器之前,它应该工作。如果没有,请尝试使on_timer()成为类成员。 - PabloAntonio


  

当计时器正在运行时,我在关闭框架时遇到了问题。

     

以下是我处理它的方式:

def on_close(event):
    timer.Stop()
    frame.Destroy()

wx.EVT_CLOSE(frame, on_close)

答案 1 :(得分:0)

我不使用wxPython,但是如果有一个名为refresh的方法或类似的东西,你可以每分钟启动一个调用该方法的线程。

from threading import Thread
from time import sleep

def refreshApp(app, timespan):
    while app.isRunning:
        app.refresh()
        sleep(timespan)

refresher = Thread(target=worker, args=(myAppInstance, 60))
refresher.start()

编辑:固定代码,使其适合PEP8

答案 2 :(得分:0)

正如Niklas所说,我认为你正在寻找Refresh()方法:http://wxpython.org/docs/api/wx.Window-class.html#Refresh