Python上的即时屏幕按钮Kivy

Python上的即时屏幕按钮Kivy,python,kivy,Python,Kivy,我有下面的代码,这是做一个屏幕上的瞬时按钮,以保持电机上推出一个遮阳篷 我从github上的一个示例中借用了代码,希望根据自己的需要对其进行修改 正如您所看到的,代码将按钮设置为瞬时按钮,而不是锁定按钮,这正是我想要的,但是,在这种情况下,无论我按住按钮多长时间,输出仅在1/10秒的时钟时间内打开 我尝试了多种不同的方法,只要我按住按钮,就可以保持输出,但我找不到满意的解决方案 我可以在GPIO引脚上设置一个瞬时外部(物理)按钮,这样做不会出现问题,但无法在屏幕上的软件按钮上运行 简而言之,我希

我有下面的代码,这是做一个屏幕上的瞬时按钮,以保持电机上推出一个遮阳篷

我从github上的一个示例中借用了代码,希望根据自己的需要对其进行修改

正如您所看到的,代码将按钮设置为瞬时按钮,而不是锁定按钮,这正是我想要的,但是,在这种情况下,无论我按住按钮多长时间,输出仅在1/10秒的时钟时间内打开

我尝试了多种不同的方法,只要我按住按钮,就可以保持输出,但我找不到满意的解决方案

我可以在GPIO引脚上设置一个瞬时外部(物理)按钮,这样做不会出现问题,但无法在屏幕上的软件按钮上运行

简而言之,我希望发生的是: 当我按下触摸屏上的按钮时,电机应继续运行,直到我将手指从按钮上取下

请问有人能帮我吗?提前谢谢

#Awning
if obj.text == '[size=24]Awning\n   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]Awning\n   Out[/size]",markup = True)
    awningOut.bind(on_press=press_callback)

    awningIn = ToggleButton(text="[size=24]Awning\n     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()

我会这样做:

#!/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()

感谢jiligeza,我已经离开这个项目一段时间了,因为我很沮丧,但我会在本周尝试一下。感谢jiligeza,我离开这个项目一段时间了,因为我很沮丧,但我会在本周尝试一下。