【问题标题】:Getting started in Kivy, need assistance with .kv filesKivy 入门,需要 .kv 文件方面的帮助
【发布时间】:2016-03-14 18:49:37
【问题描述】:

我正在尝试制作一个简单的应用程序来监控一些 IO 并有一个按钮屏幕。我正在开始使用 kivy 作为我的 gui 开发来了解屏幕如何工作的框架。我想做很多基于变量的标签更新,所以这样做的愿望导致我使用 .kv 文件和 kivy 属性。诚然,我对这些事情知之甚少,这只是我通过谷歌搜索并试图弄清楚我需要做什么所知道的。

无论如何,我正在尝试做一些基本的框架来开始使用 .kv 文件,虽然我的 main.py 可以编译,但它不显示任何按钮。我熟悉通过 python 语言向布局添加按钮,但我希​​望以 kivy 风格做更多的事情。请帮忙!

这是我的 main.py

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
import random

class YourWidget(Widget):
    random_number = StringProperty()

    def __init__(self, **kwargs):
            super(YourWidget, self).__init__(**kwargs)
            self.random_number = str(random.randint(1, 100))

        def change_text(self):
            self.random_number = str(random.randint(1, 100))

class YourApp(App):
    def build(self):
        return YourWidget()

if __name__ == '__main__':
    YourApp().run()

这是我的your.kv

#:kivy 1.9.2

<YourWidget>:
    BoxLayout:
        size: root.size
        orientation: 'horizontal'
        spacing: 10
        padding: 10

        Button:
            id: btn1
            text: "Change Text"
            on_release: root.change_text()
            size_hint: .3, .3

        Button:
            id: btn2
            text: "Exit App"
            on_release: App.get_running_app().stop()
            size_hint: .3, .3

        Label:
            id: lbl1
            Font_size: 70
            text:root.random_number
            size_hint: .3, .3

如果您有任何可以提供帮助的信息,请告诉我。我对 python 非常陌生,对像 kivy 这样的包也非常陌生。谢谢!另一个注意事项是目前我正在监视器上开发它,稍后将移植到触摸屏。

【问题讨论】:

  • 从 kv 文件中删除画布。
  • 您不会将小部件添加到canvas,而是将它们添加到Widget。画布用于else。基本上:&lt;YW&gt;: BoxLayout:
  • 尝试删除画布并没有改善。应用程序运行并且屏幕保持黑色,没有显示任何按钮或标签。我尝试将其命名为 Your.kv、Your.kv、YourWidget.kv、main.kv,这些似乎都不会影响它。命名 kv 文件的正确语法是什么? KV 文件的当前代码现在反映在原始帖子中。
  • 它应该被命名为your.kv,注意它是小写的(这是 Kivy 真正需要的,尽管 Your.kv 也可以在不区分大小写的文件系统上工作)。
  • 这一直是我的问题!但现在我知道了正确的语法。我环顾了一下kivy的说明,没有找到任何很好地解释规则的东西。谢谢!

标签: button label kivy boxlayout


【解决方案1】:

将 your.kv 重命名为 yourwidget.kv

【讨论】:

    【解决方案2】:

    在画布上绘制图形时,游戏的类或小部件名称也必须反映在 kivy 文件中。 s

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2021-12-15
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2023-01-30
      相关资源
      最近更新 更多