Python 为什么可以';我好像在Kivy应用程序的StackLayout(或其他布局)中添加了标签?
从理论上讲,把一辆Kivy放进一个(或其他布局)应该是最简单和最常见的事情,但它现在让我陷入绝望。下面的语法显示一个简单的单按钮应用程序(在Kivy 1.8或1.9下,Win 7),直到我取消标签生成行的注释,该行始终失败,并显示消息,如Python 为什么可以';我好像在Kivy应用程序的StackLayout(或其他布局)中添加了标签?,python,kivy,Python,Kivy,从理论上讲,把一辆Kivy放进一个(或其他布局)应该是最简单和最常见的事情,但它现在让我陷入绝望。下面的语法显示一个简单的单按钮应用程序(在Kivy 1.8或1.9下,Win 7),直到我取消标签生成行的注释,该行始终失败,并显示消息,如AttributeError:'LabelPygame'对象没有属性'bind'或AttributeError:'LabelSDL2'对象没有属性'bind'(在layout.py中): 我有一种预感,我忽略了一些非常明显或愚蠢的东西,但无法理解它是什么。基于B
AttributeError:'LabelPygame'对象没有属性'bind'
或AttributeError:'LabelSDL2'对象没有属性'bind'
(在layout.py
中):
我有一种预感,我忽略了一些非常明显或愚蠢的东西,但无法理解它是什么。基于Builder
和runTouchApp
的替代调用似乎工作得很好(这种布局似乎没有什么不同):
#…其他导入缩写为。。。
Builder.load_字符串(“”)
:
按钮:
文本:“始终可以呈现此按钮。”
标签:
text:“此标签在这种情况下有效。”
''')
类MyLayout(浮动布局):
通过
runTouchApp(MyLayout())
您正在导入kivy.core.text.Label
,但是您确实想要kivy.uix.Label.Label
您正在导入kivy.core.text.Label
,但是您确实想要kivy.uix.Label这很痛苦,但当痛苦减轻时感觉很好!从kivy.uix.xyzlayout.xyzout导入xyzlayout
anyway解决了这个问题。感谢你告诉我错误的本质,这可能会让我避免更多的时间盯着屏幕……这很痛,但当疼痛减轻时,这很好!从kivy.uix.xyzlayout导入xyzlayout切换到,总之解决了问题。感谢你告诉我错误的本质,这可能I don’我再也没有时间盯着屏幕看了。。。
from kivy.app import App
from kivy.uix.button import Button
from kivy.core.text import Label
from kivy.uix.stacklayout import StackLayout
class TestApp(App):
def build(self):
mylayout = StackLayout(orientation='lr-tb')
mylayout.add_widget(Button(text='This button can always be rendered.'))
# mylayout.add_widget(Label(text='This label seems to cause trouble.'))
return mylayout
TestApp().run()
# ... other imports abbreviated ...
Builder.load_string('''
<MyLayout>:
Button:
text: "This button can always be rendered."
Label:
text: "This label works in this case."
''')
class MyLayout(FloatLayout):
pass
runTouchApp(MyLayout())