首页 > 解决方案 > 无法使用 kivy.lang.Builder 构建 .kv 文件。显示属性错误

问题描述

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.gridlayout import GridLayout
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.uix.popup import Popup
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager,Screen

kv=Builder.load_file('my.kv')
class first(Screen):
    pass
class second(Screen):
    pass
class windowmanager(ScreenManager):
    pass

class myapp(App):
    def build(self):
        return kv
    
if __name__=="__main__":
    myapp().run()

[警告] [Lang ] 文件 C:\Users\Jawahar\Documents\ml实习\my.kv 被多次加载,您可能会有不想要的行为。回溯(最近一次通话最后):

文件“”,第 1 行,在 kv=Builder.load_file('my.kv')

文件“C:\Users\Jawahar\AppData\Local\Continuum\anaconda3\lib\site-packages\kivy\lang\builder.py”,第 301 行,在 load_file return self.load_string(data, **kwargs)

文件“C:\Users\Jawahar\AppData\Local\Continuum\anaconda3\lib\site-packages\kivy\lang\builder.py”,第 399 行,在 load_string widget = Factory.get(parser.root.name)( __no_builder=真)

文件“C:\Users\Jawahar\AppData\Local\Continuum\anaconda3\lib\site-packages\kivy\factory.py”,第 130 行,在getattr raise AttributeError

属性错误

#kv 文件

windowmanager:
    first:
    second:

<first>:
    name:'first'

    Button:
        text:'press me'
        size_hint:(0.1,0.1)
        pos_hint:{'top':0.5,'right':0.5}
        color:(0.1,0.2,1,1)
<second>:
    name:'second'

    Button:
        text:'press me'
        size_hint:(0.1,0.1)
        pos_hint:{'top':0.5,'right':0.5}
        color:(0.1,0.2,1,1)

标签: pythonkivykivy-language

解决方案


推荐阅读