为什么这段代码会制作两个小部件副本?

时间:2016-12-19 01:17:09

标签: python kivy kivy-language

这为每个TabbedPanelItem添加了两个选项卡以及默认选项卡。为什么会发生这种情况,我该如何预防呢?

Kivy:     :

    TabbedPanelItem:
        text: 'List'

    TabbedPanelItem:
        text: 'Add/Edit'

    TabbedPanelItem:
        text: 'Delete'

的Python:

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.tabbedpanel import TabbedPanel

presentation = Builder.load_file('my.kv')

class Panel(TabbedPanel):
    pass

class MyApp(App):
    def build(self):
        return Panel()

if __name__ == '__main__':
    MyApp().run()

1 个答案:

答案 0 :(得分:0)

你的kv文件被加载两次,一次被你的显式Builder.load_file加载一次,因为它与你的App类名相同(但是小写且没有App,正如默认的kv文件所预期的那样)加载)。

删除明确的Builder.load_file,它应该有效。