Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Kivy自定义小部件实例化两次_Python_User Interface_Kivy - Fatal编程技术网

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

Python Kivy自定义小部件实例化两次,python,user-interface,kivy,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

我正在尝试构建一个简单的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()
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()

谢谢你的帮助

您应该将kv文件重命名为
main.kv
,并在
build
方法中删除它的显式负载。它将自动加载自身。这个bug很奇怪,可能值得一看。

您应该将kv文件重命名为
main.kv
,并在
build
方法中删除它的显式加载。它将自动加载自身。这个bug很奇怪,可能值得一张罚单。

我运行了你的代码,看到两个滑块和一个按钮。天哪!感谢您的反馈;那么可能是因为我的配置/Python版本。我在Windows10上使用最新的Kivy(1.9.1)运行Python 2.7.12。尽管我不得不提到,在我的Raspberry Pi上的结果是相同的(4个滑块而不是两个)。奇怪。请尝试将kv文件重命名为,、main.kv“”,不要在
build
方法中显式加载它。它应该是自动加载的。@jligeza:非常感谢,这完全成功了!!;)让我重写一下答案,这样以后的读者更容易搜索。我运行了你的代码,我可以看到两个滑块和一个按钮。天哪!感谢您的反馈;那么可能是因为我的配置/Python版本。我在Windows10上使用最新的Kivy(1.9.1)运行Python 2.7.12。尽管我不得不提到,在我的Raspberry Pi上的结果是相同的(4个滑块而不是两个)。奇怪。请尝试将kv文件重命名为,、main.kv“”,不要在
build
方法中显式加载它。它应该是自动加载的。@jligeza:非常感谢,这完全成功了!!;)让我重写一下答案,这样以后的读者更容易搜索。情况仍然如此。情况仍然如此。