以编程方式添加的小部件未显示

Programatically Added Widget not shown

未显示以编程方式添加的小部件。

亲爱的社区,因为我需要添加一些纯文本我会详细说明 我尝试在 Kivy 中向 FloatLayout 添加一个小部件,我希望它能显示出来 在现有标签之上,但未显示

我做错了什么?

Python 文件:

from kivy.app import App
from kivy.uix.label import Label
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen

Builder.load_file('Test1.kv')

class ScreenManager(ScreenManager):
    pass

class RecScreen(Screen):
    pass

class Test1(App):

    def build(self):
        self.sm=ScreenManager()
        return self.sm

    def on_start(self):
        Layout = self.sm.ids['screen'].ids['fl_Rec']
        print(Layout)
        Layout.add_widget(Label(text='Hi!'))

if __name__ == '__main__':
    from kivy.app import App

    Test1().run() 

Test1.kv 文件:

<ScreenManager>:
    id:screen_manager
    Screen:
        id:screen

<Screen>:
    id:screen
    FloatLayout:
        id:fl_Rec
        Label:
            text:'Hello World'

谢谢

马丁

根据@furas 的提示,我将 .kv 更改为

<ScreenManager>:
id:screen_manager
Screen:
    id:screen

<Screen>:
     id:screen
     FloatLayout:
        id:fl_Rec
        canvas.before:
            Color:
                rgba: 1,1,1,0.1
            Rectangle:
                size: self.size
                pos:self.pos
        Label:
            canvas.before:
                Color:
                    rgba: 1,0.5,1,0.1
                Rectangle:
                    size: self.size
                    pos:self.pos
            size_hint: None,None
            size:50,20
            pos_hint: {'x':0.2,'y':0.2}
            text:'Hello World'

仍然没有运气!

嗨,不是潜伏在什么地方!

问题在于使用 Builder 加载 .kv 文件

我已将此行为报告给

https://github.com/kivy/kivy/issues/7723

所以希望有更懂行的人来解决。

马丁