Kivy自定义小部件实例化了两次

时间:2016-09-24 21:50:35

标签: python user-interface kivy

我正在尝试构建一个包含两个滑块的简单Kivy自定义小部件。 当渲染屏幕时,我得到两对滑块而不是一对。

我做错了什么?

Main.kv:

ScreenManagement:
    MainScreen:

<Button>:
    size_hint: .2, .1
    font_size: 20

<Mixer>:
    orientation:'vertical'
    Slider:
        min:0
        max:127
        value:64
    Slider:
        min:0
        max:127
        value:100

<MainScreen>:
    name: "mainscreen"
    Mixer:
    FloatLayout:
        Button:
            text: "Exit"
            pos: root.width - self.width, 0
            on_release: app.stop()

Main.py:

import kivy
kivy.require("1.9.1")

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout

class ScreenManagement(ScreenManager):
    pass

class Mixer(BoxLayout):
    pass

class MainScreen(Screen):
    pass

class MainApp(App):
    def build(self):
        return Builder.load_file("Main.kv")

if __name__ == "__main__":
    MainApp().run()

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您应该将kv文件重命名为main.kv,并在build方法中删除它的显式加载。它会自动加载自己。这个错误很奇怪,也许值得买票。