在 kivy (python) 中更新小部件
Posted
技术标签:
【中文标题】在 kivy (python) 中更新小部件【英文标题】:Updating widgets in kivy (python) 【发布时间】:2018-09-23 13:52:34 【问题描述】:谁能向我解释一下您如何在 kivy 中更新小部件?我这里有一个代码示例:
class Game(Widget):
def __init__(self, **kwargs):
super(Game, self).__init__(**kwargs)
with self.canvas:
Color(*sky_color)
Rectangle(pos=(0, 0), size=self.size)
with self.canvas:
Color(*grass_color)
Rectangle(pos=(0,0), size=(800,75))
with self.canvas:
Label(text='Funky Chicken', font_size='50sp', pos=(360, 400))
with self.canvas:
Button(text='Play', font_size='20')
class FunkyChickenApp(App):
def build(self):
return Game(size=Window.size)
if __name__ == "__main__":
FunkyChickenApp().run()
这应该是一个游戏菜单,所以当你按下一些按钮时,一些标签和东西必须改变。
编辑* 我的意思是如何使用 Kivy 时钟
【问题讨论】:
所以你要使用时钟,你要不要做周期性任务? 不,如果我按下按钮,我希望更改可见。似乎 kivy 一开始只渲染一次窗口。 您希望看到哪些变化?请理解我们不在您的脑海中,除非您明确表示,否则我们不知道您想要什么。还提供minimal reproducible example,并专注于特定问题,例如说当您按下按钮时我希望发生这种情况。你的问题不清楚。另请阅读How to Ask 【参考方案1】:您需要将操作绑定到按钮(文档中有几个示例https://kivy.org/docs/api-kivy.uix.button.html)。
即
button = Button(text='Play', font_size='20')
button.bind(on_press = do_something_you_want)
【讨论】:
是的,当然,但是要使任何动作可见,您需要某种 fps 还是我错了? @Heimdonger fps?你的意思是每秒帧数吗? @eyllanesc 是的,我听说过一些关于 kivy 时钟的事情以上是关于在 kivy (python) 中更新小部件的主要内容,如果未能解决你的问题,请参考以下文章