我目前正在编写一个脚本,用于创建一个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()
感谢您的帮助!
答案 0 :(得分:1)
预览可能不是阻止您的程序,而是使用sleep(20)
。
虽然'睡眠'正在发生,但其他任何事情都无法处理。这会导致您注意到的阻止。您可以通过删除该行来修复此问题,而是将camera.stop_preview()
绑定到事件(例如按键)。这看起来像是:
root.bind("<space>", lambda e: camera.stop_preview())
root
是您定义为Tk()
访问权限的位置。 lambda e:
指定内联函数表达式,其中e
是传递的事件对象。