【问题标题】:Updating widgets in kivy (python)在 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

标签: python widget kivy


【解决方案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 时钟的事情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多