Python 2.7 使用kivy screen manager时出现黑屏

Python 2.7 使用kivy screen manager时出现黑屏,python-2.7,kivy,Python 2.7,Kivy,当我运行这段代码时,它会显示一个黑屏,但是当我使用关于ScreenManager的kivy文档中的示例时,它运行得很好。我在这篇文章中也尝试过这个解决方案,但它对我不起作用 import os from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import ScreenManager, Screen, SlideTransition from kivy.uix.widget im

当我运行这段代码时,它会显示一个黑屏,但是当我使用关于ScreenManager的kivy文档中的示例时,它运行得很好。我在这篇文章中也尝试过这个解决方案,但它对我不起作用

import os

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


VIEW = os.path.abspath(os.path.join(os.path.dirname(__file__), 'views', 'moorish.kv'))


class RootScreen(Screen):
    pass


class Main(BoxLayout):
    pass


class Header(BoxLayout):
    pass


class SettingsScreen(Screen):
    pass


class SettingsMain(Widget):
    pass


class SettingsHeader(Widget):
    pass


class Container(BoxLayout):
    pass


class Circle(Widget):
    pass


screen_manager = ScreenManager(transition=SlideTransition())
screen_manager.add_widget(RootScreen(name='main'))
screen_manager.add_widget(SettingsScreen(name='settings'))


class WifiApp(App):
    def build(self):
        Builder.load_file(VIEW)
        return screen_manager


if __name__ == '__main__':
    WifiApp().run()
这是.kv文件

<Header>
    orientation: 'horizontal'
    rows: 1
    cols: 1
    Container:
        canvas:
            # Background
            Color:
                rgba: 1, 1, 1, 0.9
            Rectangle:
                pos: self.pos
                size: self.size
        Circle:
            on_touch_down:
                root.manager.transition.direction = 'right'
                root.manager.current = 'settings'
            id: 'Settings'
            canvas:
                Ellipse:
                    pos: self.x + 30, self.y + 15
                    size: 60, 60
                    source: 'logos/setting.png'

        Circle:
            id: 'Connected'
            canvas:
                Ellipse:
                    pos: self.x - 50, self.y + 15
                    size: 60, 60
                    source: 'logos/connected.png'

        Label:
            text: 'Wi-Fi Remote'
            font_size: '18sp'
            color: 0, 0, 0, .9
            right: 10


<Main>
    cols: 2
    rows: 2
    canvas:
        # Outer Background
        Color:
            rgba: 1, 1, 1, 0.4
        Rectangle:
            pos: self.pos
            size: self.size
    Container:
        canvas:
            # Inner Background
            Color:
                rgba: 1, 1, 1, 0.9
            Rectangle:
                pos: self.center_x - 150, self.center_y - 175
                size: 300, 350
        Circle:
            id: '1'
            canvas:
                Ellipse:
                    pos: self.center_x + 50, self.center_y + 25
                    size: 100, 100
                    source: 'logos/1.png'

        Circle:
            id: '2'
            canvas:
                Ellipse:
                    pos: self.center_x - 75, self.center_y - 100
                    size: 100, 100
                    source: 'logos/2.png'
        Circle:
            id: '3'
            canvas:
                Ellipse:
                    pos: self.center_x - 25, self.center_y + 25
                    size: 100, 100
                    source: 'logos/3.png'

        Circle:
            id: '4'
            canvas:
                Ellipse:
                    pos: self.center_x - 150, self.center_y - 100
                    size: 100, 100
                    source: 'logos/4.png'

<SettingsHeader>
    orientation: 'horizontal'
    rows: 1
    cols: 1
    Container:
        canvas:
            # Background
            Color:
                rgba: 1, 1, 1, 0.9
            Rectangle:
                pos: self.pos
                size: self.size
        Circle:
            id: 'Settings'
            canvas:
                Ellipse:
                    pos: self.x + 30, self.y + 15
                    size: 60, 60
                    source: 'logos/pointer.png'

        Label:
            text: 'Settings'
            font_size: '18sp'
            color: 0, 0, 0, .9
            right: 10


<SettingsMain>
    cols: 2
    rows: 2
    canvas:
        # Outer Background
        Color:
            rgba: 1, 1, 1, 0.4
        Rectangle:
            pos: self.pos
            size: self.size
    Container:
        canvas:
            # Inner Background
            Color:
                rgba: 1, 1, 1, 0.9
            Rectangle:
                pos: self.center_x - 150, self.center_y - 175
                size: 300, 350
        BoxLayout:
            TextInput:

            TextInput:

            Button:
                text: 'Save'


<RootScreen>
    orientation: 'vertical'
    cols: 1
    Header:
        size_hint: 1, 0.15

    Main:
        size_hint: 1, 0.85


<SettingsScreen>
    orientation: 'vertical'
    cols: 1

    SettingsHeader:
        size_hint: 1, 0.15

    SettingsMain:
        size_hint: 1, 0.85

方向:“水平”
行数:1
科尔斯:1
容器:
画布:
#背景
颜色:
rgba:1,1,1,0.9
矩形:
pos:self.pos
大小:self.size
圆圈:
按下按钮时:
root.manager.transition.direction='right'
root.manager.current='settings'
id:“设置”
画布:
椭圆:
位置:自x+30,自y+15
尺码:60,60
来源:“logos/setting.png”
圆圈:
id:'已连接'
画布:
椭圆:
位置:自x-50,自y+15
尺码:60,60
来源:“logos/connected.png”
标签:
文本:“Wi-Fi远程”
字体大小:“18sp”
颜色:0,0,0,9
右:10
科尔斯:2
行数:2
画布:
#外部背景
颜色:
rgba:1,1,1,0.4
矩形:
pos:self.pos
大小:self.size
容器:
画布:
#内部背景
颜色:
rgba:1,1,1,0.9
矩形:
位置:自中心x-150、自中心y-175
尺码:300350
圆圈:
id:'1'
画布:
椭圆:
位置:自中心x+50、自中心y+25
尺码:100100
来源:“logos/1.png”
圆圈:
id:'2'
画布:
椭圆:
位置:自中心x-75,自中心y-100
尺码:100100
来源:“logos/2.png”
圆圈:
id:'3'
画布:
椭圆:
位置:自中心x-25,自中心y+25
尺码:100100
来源:“logos/3.png”
圆圈:
id:'4'
画布:
椭圆:
位置:自中心x-150、自中心y-100
尺码:100100
来源:“logos/4.png”
方向:“水平”
行数:1
科尔斯:1
容器:
画布:
#背景
颜色:
rgba:1,1,1,0.9
矩形:
pos:self.pos
大小:self.size
圆圈:
id:“设置”
画布:
椭圆:
位置:自x+30,自y+15
尺码:60,60
来源:“logos/pointer.png”
标签:
文本:“设置”
字体大小:“18sp”
颜色:0,0,0,9
右:10
科尔斯:2
行数:2
画布:
#外部背景
颜色:
rgba:1,1,1,0.4
矩形:
pos:self.pos
大小:self.size
容器:
画布:
#内部背景
颜色:
rgba:1,1,1,0.9
矩形:
位置:自中心x-150、自中心y-175
尺码:300350
盒子布局:
文本输入:
文本输入:
按钮:
文本:“保存”
方向:“垂直”
科尔斯:1
标题:
尺寸提示:1,0.15
主要内容:
尺寸提示:1,0.85
方向:“垂直”
科尔斯:1
设置引导器:
尺寸提示:1,0.15
设置主要:
尺寸提示:1,0.85
出什么事了?
提前感谢

将屏幕管理器定义放在buildozer文件加载之后。例如:

class WifiApp(App):
    def build(self):
        Builder.load_file(VIEW)
        screen_manager = ScreenManager(transition=SlideTransition())
        screen_manager.add_widget(RootScreen(name='main'))
        screen_manager.add_widget(SettingsScreen(name='settings'))
        return screen_manager

kv文件中也有一些名称错误。

是的,现在可以使用了,谢谢:)是的,修复了额外的类名。