我有下面的代码,这是使屏幕上的瞬时按钮保持电机在滚动遮阳篷。
我从github上的一个例子中借用了代码,希望根据我的需要修改它。
您可以看到,代码将一个按钮设置为瞬时按钮,而不是闭锁按钮,这是我想要的,然而,在这种情况下,无论我按住按钮多长时间,输出只在时钟时打开。时间为1/10秒。
我已经尝试了多种不同的方法来得到这个保持输出只要我按住按钮,但我无法找到一个满意的解决方案?
我可以在GPIO引脚上做一个瞬时外部(物理)按钮来做到这一点,没有问题,但不能让它在屏幕上的软件按钮上工作?
所以简单地说,我想要发生的是:当我按下触摸屏上的按钮时,电机应该一直运行,直到我把手指从按钮上移开。
请问有人能帮我吗?提前谢谢。#Awning
if obj.text == '[size=24]Awningn Out[/size]':
# turn on output:
GPIO.output(awnoutPin, GPIO.HIGH)
# schedule it to turn off:
Clock.schedule_once(awnout1, .1) #output stays on if this removed
#Awning - Momentary
awningOut = ToggleButton(text="[size=24]Awningn Out[/size]",markup = True)
awningOut.bind(on_press=press_callback)
awningIn = ToggleButton(text="[size=24]Awningn In[/size]",markup = True)
awningIn.bind(on_press=press_callback)
layout.add_widget(awningOut)
layout.add_widget(awningIn)
我会这样做:
#!/usr/bin/env python3.5
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.clock import Clock
gui = '''
GridLayout
cols: 1
Label
text: button.name
MyButton
id: button
name: ''
'''
class MyButton(Button):
def send_signal(self, dt):
self.name = str(dt)
def on_press(self):
Clock.schedule_interval(self.send_signal, 0)
def on_release(self):
Clock.unschedule(self.send_signal)
class Test(App):
def build(self):
return Builder.load_string(gui)
Test().run()