2016-09-24 3 views
0

Я пытаюсь создать простой пользовательский виджет 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() 

Спасибо за вашу помощь!

+0

Я запустил ваш код, и я вижу два ползунка и одну кнопку. – jligeza

+0

Jeez! Спасибо за ваш отзыв; Возможно, это связано с моей конфигурацией/версией Python. Я запускаю Python 2.7.12 с последней версией Kivy (1.9.1) в Windows 10. Хотя я должен упомянуть, что результат такой же на моей малиновой Pi (4 слайдера вместо двух). Weird. – aerodrink

+0

Попробуйте переименовать файл kv в файл main.kv '' и не загружайте его явно в 'build'. Он должен загружаться автоматически. – jligeza

ответ

0

Вы должны переименовать файл kv в main.kv и удалить явную нагрузку в build. Он будет загружаться автоматически. Ошибка странная, может быть, стоит билет.

Смежные вопросы