Python “如何解决错误”;非类型对象没有属性';绑定&x27&引用;?
我刚开始在kivy中创建一个新的应用程序,我不知道为什么在试图从应用程序类调用StringProperty kujund时会出现错误 Python:Python “如何解决错误”;非类型对象没有属性';绑定&x27&引用;?,python,kivy,Python,Kivy,我刚开始在kivy中创建一个新的应用程序,我不知道为什么在试图从应用程序类调用StringProperty kujund时会出现错误 Python: from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import ScreenManager, Screen from kivy.properties import StringProperty from kivy.clock impo
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
from kivy.clock import Clock
kv = Builder.load_file("autogeo.kv")
kujund = "null"
class autogeo(App):
manager = ScreenManager()
Screen1 = Screen(name="esimene")
Screen2 = Screen(name='teine')
Screen3 = Screen(name="kolmas")
Screen4 = Screen(name='neljas')
Screen5 = Screen(name="viies")
kujund = StringProperty()
def update(self, *args):
pass
def build(self):
Clock.schedule_interval(self.update, 0.1)
return kv
if __name__ == "__main__":
autogeo().run()
千伏:
回溯:
Traceback (most recent call last):
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\builder.py", line 249, in create_handler
return eval(value, idmap), bound_list
File "C:\Users\ricsi\PycharmProjects\ToolsforMaths\autogeo.kv", line 46, in <module>
text: "Valisid kujundi " + app.kujund
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\parser.py", line 75, in __getattribute__
object.__getattribute__(self, '_ensure_app')()
File "C:\Users\ricsi\Anaconda3\lib\site-packages\kivy\lang\parser.py", line 70, in _ensure_app
app.bind(on_stop=lambda instance:
AttributeError: 'NoneType' object has no attribute 'bind'
回溯(最近一次呼叫最后一次):
文件“C:\Users\ricsi\Anaconda3\lib\site packages\kivy\lang\builder.py”,第249行,在create\U处理程序中
返回eval(值,idmap),绑定列表
文件“C:\Users\ricsi\PycharmProjects\ToolsforMaths\autogeo.kv”,第46行,中
文本:“Valisid kujundi”+app.kujund
文件“C:\Users\ricsi\Anaconda3\lib\site packages\kivy\lang\parser.py”,第75行,在\uu getattribute中__
对象。uuu getattribute_uuu(self,u sure_uapp')()
文件“C:\Users\ricsi\Anaconda3\lib\site packages\kivy\lang\parser.py”,第70行,在应用程序中
app.bind(on_stop=lambda实例:
AttributeError:“非类型”对象没有属性“绑定”
您正在加载一个在创建“app”之前使用“app”的.kv,因此没有人会抛出该错误。解决方案是在创建“app”之后解析它,例如构建方法
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
from kivy.clock import Clock
class autogeo(App):
manager = ScreenManager()
Screen1 = Screen(name="esimene")
Screen2 = Screen(name="teine")
Screen3 = Screen(name="kolmas")
Screen4 = Screen(name="neljas")
Screen5 = Screen(name="viies")
kujund = StringProperty()
def update(self, *args):
pass
def build(self):
kv = Builder.load_file("autogeo.kv")
Clock.schedule_interval(self.update, 0.1)
return kv
if __name__ == "__main__":
autogeo().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.properties导入StringProperty
从kivy.clock导入时钟
类自动地理(应用程序):
manager=ScreenManager()
屏幕1=屏幕(name=“esimene”)
屏幕2=屏幕(name=“teine”)
Screen3=屏幕(name=“kolmas”)
屏幕4=屏幕(name=“neljas”)
屏幕5=屏幕(name=“viies”)
kujund=StringProperty()
def更新(自我,*参数):
通过
def生成(自):
kv=Builder.load_文件(“autogeo.kv”)
时钟计划间隔(自更新,0.1)
回流千伏
如果名称=“\uuuuu main\uuuuuuuu”:
autogeo().run()
您正在加载一个在创建“app”之前使用“app”的.kv,因此没有人会抛出该错误。解决方案是在创建“app”之后对其进行解析,例如构建方法
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import StringProperty
from kivy.clock import Clock
class autogeo(App):
manager = ScreenManager()
Screen1 = Screen(name="esimene")
Screen2 = Screen(name="teine")
Screen3 = Screen(name="kolmas")
Screen4 = Screen(name="neljas")
Screen5 = Screen(name="viies")
kujund = StringProperty()
def update(self, *args):
pass
def build(self):
kv = Builder.load_file("autogeo.kv")
Clock.schedule_interval(self.update, 0.1)
return kv
if __name__ == "__main__":
autogeo().run()
从kivy.app导入应用
从kivy.lang导入生成器
从kivy.uix.screenmanager导入screenmanager,屏幕
从kivy.properties导入StringProperty
从kivy.clock导入时钟
类自动地理(应用程序):
manager=ScreenManager()
屏幕1=屏幕(name=“esimene”)
屏幕2=屏幕(name=“teine”)
Screen3=屏幕(name=“kolmas”)
屏幕4=屏幕(name=“neljas”)
屏幕5=屏幕(name=“viies”)
kujund=StringProperty()
def更新(自我,*参数):
通过
def生成(自):
kv=Builder.load_文件(“autogeo.kv”)
时钟计划间隔(自更新,0.1)
回流千伏
如果名称=“\uuuuu main\uuuuuuuu”:
autogeo().run()
由于'kv'文件的名称正确,因此可以完全取消对Builder.load_file()的调用。
由于'kv'文件的名称正确,因此可以完全取消对Builder.load_file()的调用。