要触发图像的采集,我使用kivy-button的on_release
- 函数。
因此,无论何时单击此按钮(或按 - 因为使用触摸屏),都会使用gphoto2触发相机。
问题: 有时,该功能会被执行多次(拍摄多张图像),而且只清楚地按下一次。
根据日志,我有信心,这是一个与kivy相关的问题(与相机无关等):on_release
- 功能中的记录条目在日志中多次出现。 / p>
我正在使用触摸屏在Ubuntu 14.04 LTS(64位)下使用kivy(版本1.9.0)和python(版本2.7.6)运行应用程序。
欢迎提供有关如何调试或解决问题的任何提示。
答案 0 :(得分:0)
您可以在第一个释放事件开始时禁用该按钮,并且在拍摄照片的线程的末尾,再次启用该按钮。然后,您不会从该按钮执行多个事件,但仍允许主应用程序线程继续。
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
import time
import threading
Builder.load_string('''
<MyLayout>:
Button:
text: 'Print to terminal'
on_release:
root.button_released(self)
''')
class MyLayout(BoxLayout):
def button_released(self,button):
button.disabled = True
print("{} pressed!".format(button))
threading.Thread(target=self.take_picture, args=(button,)).start()
def take_picture(self,button):
time.sleep(1) # taking picture or whatever
button.disabled = False
class MyApp(App):
def build(self):
return MyLayout()
MyApp().run()
答案 1 :(得分:0)
我被困在同一个问题上好几天了!
您的代码中是否有此行?
Config.set('input', 'mouse', 'mouse, multitouch_on_demand')
如果是,则将其删除。
在触摸设备上,触摸被触发多次。
希望它可以帮助遇到相同问题的人。