用python 计时器怎么做,

Python011

用python 计时器怎么做,,第1张

用python实现计时器功能,代码如下:

''' Simple Timing Function.

This function prints out a message with the elapsed time from the

previous call. It works with most Python 2.x platforms. The function

uses a simple trick to store a persistent variable (clock) without

using a global variable.

'''

import time

def dur( op=None, clock=[time.time()] ):

  if op != None:

    duration = time.time() - clock[0]

    print '%s finished. Duration %.6f seconds.' % (op, duration)

  clock[0] = time.time()

# Example

if __name__ == '__main__':

  import array

  dur()  # Initialise the timing clock

  opt1 = array.array('H')

  for i in range(1000):

    for n in range(1000):

      opt1.append(n)

  dur('Array from append')

  opt2 = array.array('H')

  seq = range(1000)

  for i in range(1000):

    opt2.extend(seq)

  dur('Array from list extend')

  opt3 = array.array('H')

  seq = array.array('H', range(1000))

  for i in range(1000):

    opt3.extend(seq)

  dur('Array from array extend')

# Output:

# Array from append finished. Duration 0.175320 seconds.

# Array from list extend finished. Duration 0.068974 seconds.

# Array from array extend finished. Duration 0.001394 seconds.

>>#加了上面这段while运行时窗体不显示只是后台在截图,这是为什么,要怎么处理?

wx这种GUI框架都是基于事件的。事件包括窗体绘图,窗体刷新,鼠标按钮点击等。这些事件是在 app.MainLoop() 里面进行捕获和处理的。你的程序没有执行到 MainLoop() GUI就不能正常工作。

解决办法:

使用一个单独的进程或线程做截图,不要阻塞主进程。

使用Timer之类的GUI控件,然后定义相应的handler. wx里面有wxTimer.

补充:你的程序已经用到了wx的Timer控件,只要多创建一个Timer用来触发截图动作就可以了。