Kivy错误:“修订格式必须为X.Y.Z [-tag]”

时间:2019-10-24 17:53:45

标签: python kivy

我尝试运行mi程序,但由于某种原因我看到此错误:“修订格式必须为X.Y.Z [-tag]” 我不知道这是什么意思。

我一直在尝试从代码中删除一些东西,以了解是什么原因造成的,但我还没有弄清楚

这是我的python文件:

#!/usr/bin/python
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import ScreenManager, Screen
kivy.require("1.11.1")

class Inicial(BoxLayout):
    def __init__(self, **kwargs):
        super(Inicial, self).__init__(**kwargs)
        temperaturaActual = "°C"


class MainApp(App):
    def build(self):
        return Inicial

if __name__=="__main__":
    MainApp().run()

这是我的kv文件:

#:kivy !

#:kivy !

<Inicial>:
    Label:
        id: "temperatura"
        text: root.temperaturaActual
        size_hint: (.25, .25)
        pos_hint: { 'center_x': .05, 'center_y': .55}
        font_size: 60sp
        font_name: 'C:/Users/mateo/AppData/Local/Microsoft/Windows/Fonts/Roboto-Light'

2 个答案:

答案 0 :(得分:0)

#:kivy kv语法用于声明兼容的最低Kivy版本。您正在声明!的版本。如错误所述,您的版本必须采用X.Y.Z[-tag]的形式,例如1.11.0。

最简单的解决方案是删除#:kivy行,它们不是必需的。

答案 1 :(得分:0)

您指出的问题是因为您错误地将{.3}中的.kv标头指出:

  

kv文件的语法

Kivy语言文件必须具有.kv作为   文件扩展名。

     

文件内容应始终以Kivy标头开头,   必须用您所使用的Kivy语言版本替换版本   使用。现在,使用1.0:

#:kivy 1.0

# content here

在您的情况下,您使用#:kivy !,并不必要地重复两次。

另一方面,您还有其他错误:

  • 只能从.kv中访问该属性,而当前温度则无法访问。

  • 如果要使用单位表示测量值,则这些值应为字符串。

  • build方法必须返回一个对象,而不是一个类。在属于类的Initial类中,要返回一个对象,您必须使用Initial()

  • 实例化它

考虑到上述情况,解决方案是:

#!/usr/bin/python
import kivy

kivy.require("1.11.1")

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import StringProperty


class Inicial(BoxLayout):
    temperaturaActual = StringProperty()

    def __init__(self, **kwargs):
        super(Inicial, self).__init__(**kwargs)
        self.temperaturaActual = "°C"


class MainApp(App):
    def build(self):
        return Inicial()


if __name__ == "__main__":
    MainApp().run()
#:kivy 1.11.1

<Inicial>:
    Label:
        id: "temperatura"
        text: root.temperaturaActual
        size_hint: (.25, .25)
        pos_hint: {'center_x': .05, 'center_y': .55}
        font_size: "60sp"
        font_name: 'C:/Users/mateo/AppData/Local/Microsoft/Windows/Fonts/Roboto-Light'