Python 为什么可以';我好像在Kivy应用程序的StackLayout(或其他布局)中添加了标签?

Python 为什么可以';我好像在Kivy应用程序的StackLayout(或其他布局)中添加了标签?,python,kivy,Python,Kivy,从理论上讲,把一辆Kivy放进一个(或其他布局)应该是最简单和最常见的事情,但它现在让我陷入绝望。下面的语法显示一个简单的单按钮应用程序(在Kivy 1.8或1.9下,Win 7),直到我取消标签生成行的注释,该行始终失败,并显示消息,如AttributeError:'LabelPygame'对象没有属性'bind'或AttributeError:'LabelSDL2'对象没有属性'bind'(在layout.py中): 我有一种预感,我忽略了一些非常明显或愚蠢的东西,但无法理解它是什么。基于B

从理论上讲,把一辆Kivy放进一个(或其他布局)应该是最简单和最常见的事情,但它现在让我陷入绝望。下面的语法显示一个简单的单按钮应用程序(在Kivy 1.8或1.9下,Win 7),直到我取消标签生成行的注释,该行始终失败,并显示消息,如
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())