如何在kivy标签中添加数字?

2024-04-20 12:20:23 发布

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

我试图用这种方式更新我的标签,我有一个标签和一个函数,当我使用这个函数时,我的标签在它的文本中添加一个数字。这样,如果我的标签在我点击按钮之前是1,在我点击一个按钮之后,标签变为1+x。我不知道该怎么做。这是纯粹的代数。在

.py

class PrimeiroScreen(Screen):
def __init__(self,**kwargs):
    self.name = 'uno'
    super(Screen,self).__init__(**kwargs)

def fc(self):
    self.ids.lb1.text += "1" #its add 1 in the label, but not sum 1 to label value

在和千伏在

^{pr2}$

Tags: 函数py文本selfinitdef方式数字
1条回答
网友
1楼 · 发布于 2024-04-20 12:20:23

为了便于归纳,我将子类Label以拥有额外的Property来存储该值,并将文本绑定到该值。允许自动格式化:

from kivy.lang import Builder
from kivy.app import App
from kivy.properties import NumericProperty
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.label import Label

kv_str = '''
<PrimeiroScreen>:
    GridLayout:
        cols: 1     
        size_hint: (.3, .1)
        pos_hint:{'x': .045, 'y': .89}
        MyLabel:
            text: "my value: {}".format(self.value)
            font_size: '30dp'
            text_size: self.width, self.height
            id: lb1
        Button:
            text: "Somar 3"
            font_size: '30dp'
            text_size: self.width - 50, self.height
            on_press: root.fc()
'''

class PrimeiroScreen(Screen):
    def fc(self):
        self.ids.lb1.value += 1

class MyLabel(Label):
    value = NumericProperty(0)

Builder.load_string(kv_str)

class AnApp(App):
    def build(self):
        rw = ScreenManager()
        rw.add_widget(PrimeiroScreen(name='main'))
        return rw
AnApp().run()

相关问题 更多 >