本文介绍了AttributeError:"NoneType"对象在python中没有属性"text"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用python-2.7
和kivy
.当我运行test.py
时会给出错误AttributeError: 'NoneType' object has no attribute 'text' in python
?
有人告诉我什么是错误的吗?
I am using python-2.7
and kivy
.When i run test.py
then it gives error AttributeError: 'NoneType' object has no attribute 'text' in python
?
Someone tell me what is mistake?
import kivy
kivy.require('1.9.0') # replace with your current kivy version !
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.properties import ObjectProperty
Window.size = (500, 230)
class GroupScreen(Screen):
groupName = ObjectProperty(None)
def __init__(self, **kwargs):
super(GroupScreen, self).__init__(**kwargs)
self.groupName.text = "Test"
class Group(App):
def build(self):
self.root = Builder.load_file('test.kv')
return self.root
if __name__ == '__main__':
Group().run()
test.kv
GroupScreen:
groupName:groupName
GridLayout:
cols: 2
padding : 30,30
spacing: 10, 10
row_default_height: '40dp'
Label:
text: 'Test'
SingleLineTextInput:
id: groupName
GreenButton:
text: 'Ok'
GreenButton:
text: 'Cancel'
Label:
Label:
<SingleLineTextInput@TextInput>:
multiline: False
<GreenButton@Button>:
background_color: 1, 1, 1, 1
size_hint_y: None
height: self.parent.height * 0.150
推荐答案
如果要在.kv中创建对象,则:
If you are going to create the object in the .kv:
GroupScreen:
groupName:groupName
...
那么就没有必要在.py中声明它.
Then it is not necessary to declare it in the .py.
另一方面,将子项添加到窗口小部件不是立即进行的,因此在这些情况下始终建议使用Clock
.
On the other hand the addition of children to a widget is not instantaneous so it is always recommended in these cases to use Clock
.
import kivy
kivy.require('1.9.0') # replace with your current kivy version !
from kivy.uix.screenmanager import Screen
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.clock import Clock
Window.size = (500, 230)
class GroupScreen(Screen):
def __init__(self, **kwargs):
super(GroupScreen, self).__init__(**kwargs)
Clock.schedule_once(lambda dt: setattr(self.groupName, 'text', "Test"))
class Group(App):
def build(self):
self.root = Builder.load_file('test.kv')
return self.root
if __name__ == '__main__':
Group().run()
这篇关于AttributeError:"NoneType"对象在python中没有属性"text"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!