python kivy-on_press被执行两次

python kivy-on_press被执行两次,python,kivy,touch,raspberry-pi3,Python,Kivy,Touch,Raspberry Pi3,Python新手-我正在编写一个带触摸屏的覆盆子pi应用程序。设法使其工作,但按下+按钮时,增量功能将执行两次(减量相同)。这些按钮仅在按下另一个按钮时启用,但这不是问题所在。 需要帮忙吗 from kivy.app import App from kivy.uix.floatlayout import FloatLayout from kivy.uix.gridlayout import GridLayout from kivy.uix.label import Label from kivy

Python新手-我正在编写一个带触摸屏的覆盆子pi应用程序。设法使其工作,但按下+按钮时,增量功能将执行两次(减量相同)。这些按钮仅在按下另一个按钮时启用,但这不是问题所在。 需要帮忙吗

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.core.window import Window
Window.show_cursor = False
import serial
import time

port = serial.Serial("/dev/ttyS0", baudrate=19200, timeout=3.0)

btnNum = '0'
b1Tmp = 0; b2Tmp = 0; b3Tmp = 0; b4Tmp = 0; b5Tmp = 0; b6Tmp = 0; b7Tmp = 0; b8Tmp = 0
b1Max =50; b2Max =50; b3Max =50; b4Max =50; b5Max =50; b6Max =50; b7Max =50; b8Max =50;


class Container(Widget):
    labR1= ObjectProperty(None)
    labR2= ObjectProperty(None)
    labR3= ObjectProperty(None)
    labR4= ObjectProperty(None)
    labR5= ObjectProperty(None)
    labR6= ObjectProperty(None)
    labR7= ObjectProperty(None)
    labR8= ObjectProperty(None)
    butUP= ObjectProperty(None)
    butDN= ObjectProperty(None)
    labM1= ObjectProperty(None)
    labM2= ObjectProperty(None)
    labM3= ObjectProperty(None)
    labM4= ObjectProperty(None)
    labM5= ObjectProperty(None)
    labM6= ObjectProperty(None)
    labM7= ObjectProperty(None)
    labM8= ObjectProperty(None)



    def bpressed(self,instance):
        global btnNum
        btnNum = instance.text
        self.butDN.disabled = False
        self.butUP.disabled = False

    def breleased(self,instance):
        global btnNum
        btnNum = '0'
        self.butDN.disabled = True
        self.butUP.disabled = True

    def increment(self,instance):
        global btnNum,b1Max,b2Max,b3Max,b4Max,b5Max,b6Max,b7Max,b8Max
        if (btnNum == '1'):
            if (b1Max<100): b1Max+=2
            self.labM1.text = str(b1Max)
        if (btnNum == '2'):
            if (b2Max<100): b2Max=b2Max+1
            self.labM2.text = str(b2Max)
        if (btnNum=='3'):
            if (b3Max<100): b3Max+=1
            self.labM3.text = str(b3Max)
        if (btnNum=='4'):
            if (b4Max<100): b4Max+=1
            self.labM4.text = str(b4Max)
        if (btnNum=='5'):
            if (b5Max<100): b5Max+=1
            self.labM5.text = str(b5Max)
        if (btnNum=='6'):
            if (b6Max<100): b6Max+=1
            self.labM6.text = str(b6Max)
        if (btnNum=='7'):
            if (b7Max<100): b7Max+=1
            self.labM7.text = str(b7Max)
        if (btnNum=='8'):
            if (b8Max<100): b8Max+=1
            self.labM8.text = str(b8Max)

    def decrement(self,instance):
        global btnNum,b1Max,b2Max,b3Max,b4Max,b5Max,b6Max,b7Max,b8Max
        if (btnNum == '1'):
            if (b1Max>20): b1Max-=1
            self.labM1.text = str(b1Max)
        if (btnNum == '2'):
            if (b2Max>20): b2Max-=1
            self.labM2.text = str(b2Max)
        if (btnNum=='3'):
            if (b3Max>20): b3Max-=1
            self.labM3.text = str(b3Max)
        if (btnNum=='4'):
            if (b4Max>20): b4Max-=1
            self.labM4.text = str(b4Max)
        if (btnNum=='5'):
            if (b5Max>20): b5Max-=1
            self.labM5.text = str(b5Max)
        if (btnNum=='6'):
            if (b6Max>20): b6Max-=1
            self.labM6.text = str(b6Max)
        if (btnNum=='7'):
            if (b7Max>20): b7Max-=1
            self.labM7.text = str(b7Max)
        if (btnNum=='8'):
            if (b8Max>20): b8Max-=1
            self.labM8.text = str(b8Max)


    def  serialsend(self,instance):
        port.write("\r\nSay something:".encode())

    def close(self , obj):
        App.get_running_app().stop()
        Window.close()



class BoilerApp(App):

    def build(self):
        self.title = 'Boiler Monitor'
        return Container()

if __name__ == "__main__":
    from kivy.core.window import Window
    Window.fullscreen = True
    app = BoilerApp()
    app.run()
从kivy.app导入应用
从kivy.uix.floatlayout导入floatlayout
从kivy.uix.gridlayout导入gridlayout
从kivy.uix.label导入标签
从kivy.uix.button导入按钮
从kivy.uix.textinput导入textinput
从kivy.uix.widget导入widget
从kivy.properties导入ObjectProperty
从kivy.core.window导入窗口
Window.show\u cursor=False
导入序列号
导入时间
端口=串行。串行(“/dev/ttyS0”,波特率=19200,超时=3.0)
btnNum='0'
b1Tmp=0;b2Tmp=0;b3Tmp=0;b4Tmp=0;b5Tmp=0;b6Tmp=0;b7Tmp=0;b8Tmp=0
b1Max=50;b2Max=50;b3Max=50;b4Max=50;b5Max=50;b6Max=50;b7Max=50;b8Max=50;
类容器(小部件):
labR1=ObjectProperty(无)
labR2=ObjectProperty(无)
labR3=ObjectProperty(无)
labR4=对象属性(无)
labR5=ObjectProperty(无)
labR6=ObjectProperty(无)
labR7=ObjectProperty(无)
labR8=ObjectProperty(无)
butUP=ObjectProperty(无)
butDN=ObjectProperty(无)
labM1=对象属性(无)
labM2=对象属性(无)
labM3=对象属性(无)
labM4=ObjectProperty(无)
labM5=ObjectProperty(无)
labM6=ObjectProperty(无)
labM7=对象属性(无)
labM8=ObjectProperty(无)
def B压缩(自身,实例):
全球btnNum
btnNum=instance.text
self.butDN.disabled=False
self.butUP.disabled=False
def BRELEATED(自身、实例):
全球btnNum
btnNum='0'
self.butDN.disabled=True
self.butUP.disabled=True
def增量(自身、实例):
全局btnNum、b1Max、b2Max、b3Max、b4Max、b5Max、b6Max、b7Max、b8Max
如果(btnNum=='1'):
如果(b1Max20):b8Max-=1
self.labM8.text=str(b8Max)
def serialsend(自身,实例):
port.write(“\r\n请发送内容:”.encode())
def关闭(自身、obj):
App.get_running_App().stop()
Window.close()
类BoilerApp(应用程序):
def生成(自):
self.title=‘锅炉监控器’
返回容器()
如果名称=“\uuuuu main\uuuuuuuu”:
从kivy.core.window导入窗口
Window.fullscreen=True
app=BoilerApp()
app.run()
kv文件

<MyButton@Button>:
    color: .8,.9,0,1
    font_size: 30

<MyLabel@Label>:
    color: .8,.9,0,1
    font_size: 30


<Container>

    labR1: labR1
    labR2: labR2
    labR3: labR3
    labR4: labR4
    labR5: labR5
    labR6: labR6
    labR7: labR7
    labR8: labR8

    butUP: butUP
    butDN: butDN

    labM1: labM1
    labM2: labM2
    labM3: labM3
    labM4: labM4
    labM5: labM5
    labM6: labM6
    labM7: labM7
    labM8: labM8


    GridLayout:
        cols: 1
        size: root.width, root.height
        Label:
            text: "Boiler Alarm"
            size_hint: .5, .2
            font_size: 40
            background_color: 1,0,0,1
        GridLayout:
            cols:10
            MyLabel:
                text: "Boiler"
            MyButton:
                id: butB1
                text: "1"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB2
                text: "2"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB3
                text: "3"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB4
                text: "4"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB5
                text: "5"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB6
                text: "6"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB7
                text: "7"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyButton:
                id: butB8
                text: "8"
                on_press: root.bpressed(self)
                on_release: root.breleased(self)
            MyLabel:
                text: ""
            Label:
                text: "Reading"
                font_size: 25
            MyLabel:
                id: labR1
                text: "0"
            MyLabel:
                id: labR2
                text: "0"
            MyLabel:
                id: labR3
                text: "0"
            MyLabel:
                id: labR4
                text: "0"
            MyLabel:
                id: labR5
                text: "0"
            MyLabel:
                id: labR6
                text: "0"
            MyLabel:
                id: labR7
                text: "0"
            MyLabel:
                id: labR8
                text: "0"
            MyButton:
                id: butUP
                text: "+"
                disabled: True
                on_press: root.increment(self)

            Label:
                text: "Minimum"
                font_size: 25
            MyLabel:
                id: labM1
                text: "50"
            MyLabel:
                id: labM2
                text: "50"
            MyLabel:
                id: labM3
                text: "50"
            MyLabel:
                id: labM4
                text: "50"
            MyLabel:
                id: labM5
                text: "50"
            MyLabel:
                id: labM6
                text: "50"
            MyLabel:
                id: labM7
                text: "50"
            MyLabel:
                id: labM8
                text: "50"
            MyButton:
                id: butDN
                text: "-"
                disabled: True
                on_release: root.decrement(self)

        Button:
            id: btnexit
            text: "Exit"
            size_hint: .5, .1
            on_press: root.close(self)
:
颜色:.8,9,0,1
字体大小:30
:
颜色:.8,9,0,1
字体大小:30
labR1:labR1
labR2:labR2
labR3:labR3
labR4:labR4
labR5:labR5
labR6:labR6
labR7:labR7
labR8:labR8
布图:布图
布顿:布顿
labM1:labM1
labM2:labM2
labM3:labM3
labM4:labM4
labM5:labM5
labM6:labM6
labM7:labM7
labM8:labM8
网格布局:
科尔斯:1
尺寸:根.宽度,根.高度
标签:
文本:“锅炉报警”
大小提示:.5,.2
字体大小:40
背景颜色:1,0,0,1
网格布局:
科尔斯:10
MyLabel:
文字:“锅炉”
我的按钮:
id:butB1
案文:“1”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB2
案文:“2”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB3
案文:“3”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB4
案文:“4”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB5
案文:“5”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB6
案文:“6”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB7
案文:“7”
按:root.b压缩(self)
发布时:root.brereleased(self)
我的按钮:
id:butB8
案文:“8”
按:root.b压缩(self)
发布时:root.brereleased(self)
MyLabel:
案文:“”
标签:
正文:“阅读”
字体大小:25
MyLabel:
id:labR1
文本:“0”
MyLabel:
id:labR2
文本:“0”
MyLabel:
id:labR3
文本:“0”
MyLabel:
id:labR4
文本:“0”
MyLabel:
id:labR5
文本:“0”
MyLabel:
id:labR6
文本:“0”
MyLabel:
id:labR7
文本:“0”
MyLabel:
id:labR8
文本:“0”
我的按钮:
id:butUP
正文:“+”
残疾人士:对
按以下键:根增量(自)
标签:
案文:“最低限度”
字体大小:25
MyLabel:
编号:labM1
正文:“50”
MyLabel:
id:labM2
正文:“50”
MyLabel:
id:labM3
正文:“50”
MyLabel:
编号:labM4
正文:“50”
MyLabel:
id:labM5
正文:“50”
MyLabel:
id:labM6
正文:“50”