在kivy程序(Python)中动态更新标签文本

2024-09-29 02:24:35 发布

您现在位置:Python中文网/ 问答频道 /正文

kivy库新手,在动态更新属性时遇到一些问题。这里的标签只是个占位符。最终,我希望显示的图像根据用户单击/触摸的象限顺序更改。在

程序运行良好,没有错误,悬停标签(label2)不更新(label1更新)。当我点击四个象限时,象限号会像我预期的那样显示在控制台上。我也在打印自身增量每当用户单击Q1时,它也会显示并增加,这意味着incr属性会按应该的方式增加。在

所以,我不明白为什么它不更新标签。在

在主.py在

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.image import Image

class TouchInput(Widget):

    def __init__(self,**kwargs):
        self.incr = 5
        super(TouchInput,self).__init__(**kwargs)

    def on_touch_up(self, touch):

        if touch.x < self.width / 2:
            lateral = 'left'
        elif touch.x > self.width / 2:
            lateral = 'right'
        else:
            lateral = None

        if touch.y < self.height / 2:
            vertical = 'bottom'
        elif touch.y > self.height / 2:
            vertical = 'top'
        else:
            vertical = None

        if vertical and lateral:
            if lateral == 'left' and vertical == 'top':
                quadrant = 1
                print 'Q1'
                self.incr += 1
                print self.incr
            elif lateral == 'right' and vertical == 'top':
                quadrant = 2
                print 'Q2'
            elif lateral == 'left' and vertical == 'bottom':
                quadrant = 3
                print 'Q3'
            elif lateral == 'right' and vertical == 'bottom':
                quadrant = 4
                print 'Q4'

class PPVT(App):

    def build(self):
        t = TouchInput()
        print t.incr
        return t


if __name__ == "__main__":
    PPVT().run()

在主电压kv在

^{pr2}$

Tags: andfromimportselfif标签touchprint