在 Kivy 中更改 on_press 事件的按钮文本值
Change button text value for on_press event in Kivy
我的应用程序有一个文本值为“2”的按钮。我想在 on_press
事件
上将文本值更改为 100
我的尝试:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from random import random
from random import choice
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
r1c2=random()
Builder.load_string("""
<Highest>:
r1c2: str(2)
GridLayout:
cols: 1
Button:
text: root.r1c2
on_press: root.new()
""")
class Highest(Screen):
def new(self):
r1c2=str(100)
# Create the screen manager
sm = ScreenManager()
sm.add_widget(Highest(name='Highest'))
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
错误:目前,按下按钮时没有任何反应。请帮忙
您应该使用可用的 kivy 属性。有关详细信息,请参阅 kivy.properties。
添加此导入以访问字符串 属性:
from kivy.properties import StringProperty
你的 Highest
class 应该是:
class Highest(Screen):
r1c2 = StringProperty(str(2))
def new(self):
self.r1c2 = str(100)
初始化时 r1c2
值等于“2”。当调用函数 new()
时,r1c2
的值将变为“100”。按钮文本绑定到字符串 属性 r1c2
,因此它会自动更改。
您的构建器字符串中不需要 r1c2=str(2)
。
Builder.load_string("""
<Highest>:
GridLayout:
cols: 1
Button:
text: root.r1c2
on_press: root.new()
""")
我的应用程序有一个文本值为“2”的按钮。我想在 on_press
事件
我的尝试:
#!/usr/bin/kivy
import kivy
kivy.require('1.7.2')
from random import random
from random import choice
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
r1c2=random()
Builder.load_string("""
<Highest>:
r1c2: str(2)
GridLayout:
cols: 1
Button:
text: root.r1c2
on_press: root.new()
""")
class Highest(Screen):
def new(self):
r1c2=str(100)
# Create the screen manager
sm = ScreenManager()
sm.add_widget(Highest(name='Highest'))
class TestApp(App):
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
错误:目前,按下按钮时没有任何反应。请帮忙
您应该使用可用的 kivy 属性。有关详细信息,请参阅 kivy.properties。
添加此导入以访问字符串 属性:
from kivy.properties import StringProperty
你的 Highest
class 应该是:
class Highest(Screen):
r1c2 = StringProperty(str(2))
def new(self):
self.r1c2 = str(100)
初始化时 r1c2
值等于“2”。当调用函数 new()
时,r1c2
的值将变为“100”。按钮文本绑定到字符串 属性 r1c2
,因此它会自动更改。
您的构建器字符串中不需要 r1c2=str(2)
。
Builder.load_string("""
<Highest>:
GridLayout:
cols: 1
Button:
text: root.r1c2
on_press: root.new()
""")