应该如何使用python tkinter的主循环来维护跳跃运动的侦听器帧回调?



应该如何使用python-tkinter的主循环来维护leap-motion的侦听器帧回调?

控制器的常量回调与Tkinter的主循环同时发生。

还有:

1) 这叫做多线程吗?

2) 在python中使用跳跃运动进行开发时,您使用的gui是什么?

谢谢!

这里有一个Tkinter+Leap Motion的例子:Leap_Touch_Emulation

我写了它,这是我写过的唯一一个Tkinter程序,但它确实说明了创建和使用监听器的基本原理。

1) 是的,Leap Motion侦听器是多线程的——每个回调函数都在一个单独的线程上执行。

您也可以在Tkinter循环中的一个方便的点上获得Leap Motion跟踪数据,而根本不使用侦听器。看起来after()函数是一个很好的地方:

from Tkinter import *
import Leap
root=Tk()
controller = Leap.Controller()
def task():
    frame = controller.frame()
    root.after(1/60,task)  # 60 fps
root.after(1/60,task)
root.mainloop() 

(改编自:如何在Tkinter的事件循环中运行自己的代码)

这可以提高应用程序的响应能力,因为每次主循环迭代只处理一帧Leap Motion跟踪数据,而不是最多处理4帧。

2) 这是一个不同的问题,可能不是适合堆栈溢出的类型。对于非图形密集型示例,我使用Tkinter,因为它是内置的。对于使用Tkinter无法轻松实现的绘图类型,我一直在使用pyglet/OpenGL。

最新更新