我尝试运行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'
答案 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'