Raspberry Pi - 预览运行时如何做其他事情?

时间:2017-09-23 19:24:19

标签: python tkinter raspberry-pi

我目前正在编写一个脚本,用于创建一个GUI(用Tkinter编写),它可以完成很多工作。其中包括能够开始使用相机进行预览,然后能够随意向前和向后移动此电机。不幸的是,预览阻止我在运行时使用GUI做任何其他事情,有什么方法吗?在我的理想世界中,您可以按GUI按钮向前和向后移动电机,预览在后台运行并为您提供主动反馈。以下是我的一些代码:

def motorOut():
    backwards(int(delayf) / 1000.0, int(stepsf))
    setStep(0,0,0,0)

def motorIn():
    forward(int(delayb) / 1000.0, int(stepsb))
    setStep(0,0,0,0)

def cameraPreview():

    camera.start_preview(fullscreen=False, window = (400, 240, 400, 240))
    sleep(20)
    camera.stop_preview()

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

预览可能不是阻止您的程序,而是使用sleep(20)

虽然'睡眠'正在发生,但其他任何事情都无法处理。这会导致您注意到的阻止。您可以通过删除该行来修复此问题,而是将camera.stop_preview()绑定到事件(例如按键)。这看起来像是:

root.bind("<space>", lambda e: camera.stop_preview())

root是您定义为Tk()访问权限的位置。 lambda e:指定内联函数表达式,其中e是传递的事件对象。