Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.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_Kivy_Kivy Language - Fatal编程技术网

Python Kivy在画布上绘制的行为,要更改它';背景

Python Kivy在画布上绘制的行为,要更改它';背景,python,kivy,kivy-language,Python,Kivy,Kivy Language,我试图用以下kv语言设置布局的背景: <RootWidget>: Menu: orientation: 'vertical' Button: text: 'btn1' on_release: print('btn1') Button: text: 'btn' on_release: print('btn2') BoxLa

我试图用以下kv语言设置布局的背景:

<RootWidget>:

    Menu:
        orientation: 'vertical'

        Button:
            text: 'btn1'
            on_release: print('btn1')
        Button:
            text: 'btn'
            on_release: print('btn2')

    BoxLayout:
        BoxLayout:
            canvas.before:
                Rectangle:
                    pos: self.pos
                    size: self.size
                    source: 'main_background.png'

            ToggleMenuButton:
                on_release: root.toggle_state()
                size_hint: None, None
                size: 60, 60
                background_color: 0, 0, 0, 0
                Image:
                    size: self.parent.size
                    pos: self.parent.pos
                    allow_stretch: True
                    source: './data/images/white_menu.png'
菜单和内容类是Kivy BoxLayout,ToggleMenuButton是Kivy按钮

当我运行此代码时,会出现以下屏幕:

背景应该是我的图像,而不是黑色。如果我把
white_menu.png
作为背景,我也会得到一个黑色背景。但是,如果输入以下代码:

    BoxLayout:
        orientation: 'vertical'
        BoxLayout:
            orientation: 'vertical'
            canvas.before:
                Rectangle:
                    pos: self.pos
                    size: self.size
                    source: 'main_background.png'
我得到以下信息:

正如您在底部看到的,图像是透明的,有3个白色矩形,但在主布局上图像是红色的。我知道它是红色的,因为rgba代码,但是为什么图像会改变颜色呢? 如果我把背景放在
画布上,在它正常工作后,我可以看到我的背景,但我看不到小部件

总而言之,我想了解发生了什么?为什么我在
画布上看不到更改?为什么/如何在画布上添加颜色会改变我的图像

如果我将
RootWidget
更改为BoxLayout,而不是NavigationDrawer,它将正常工作。为什么?为什么更改
导航抽屉的子项的画布不起作用

    BoxLayout:
        orientation: 'vertical'
        BoxLayout:
            orientation: 'vertical'
            canvas.before:
                Rectangle:
                    pos: self.pos
                    size: self.size
                    source: 'main_background.png'