黑屏经理沮丧

问题描述 投票:0回答:1

我正在尝试使用屏幕管理器和.kv文件构建一个简单的Kivy(1.10.1)应用程序,但我一直在黑屏。

我的ScreenManager(GUI / nco.py)

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager
from GUI.login import LoginScreen

class NCO(ScreenManager):
    def add_widget(self, screen):
        super(NCO, self).add_widget(screen)
        # TODO: add a radial gradiant background from (0, 155, 190) to (0, 5, 20)
        print("added screen:", screen.name)

class NCOApp(App):
    def build(self):
        nco = NCO()
        nco.add_widget(LoginScreen(name="login"))
        return nco

GUI / login.py

from kivy.uix.screenmanager import Screen

class LoginScreen(Screen):
    def test(self):
        mail = self.ids.mail.text.strip()
        pwd = self.ids.pwd.text
        print("e-mail:", mail)
        print("password:", pwd)

GUI / login.kv

#:kivy 1.10.1

<LoginScreen>:
    AnchorLayout:
        size: self.parent.size

        BoxLayout:
            size_hint: None, None
            size: 400, 35
            orientation: "horizontal"

            TextInput:
                id: mail
                font_size: 20
                hint_text: "e-mail"
                multiline: False
                write_tab: False

            TextInput:
                id: pwd
                font_size: 20
                password: True
                hint_text: "password"
                multiline: False
                write_tab: False

            Button:
                size_hint: .3, 1
                text: "login"
                on_press: root.manager.current.test()

卖弄.朋友

from GUI.nco import NCOApp
from kivy.config import Config
Config.set("graphics", "fullscreen", "auto")

if __name__ == '__main__':
    NCOApp().run()

当我没有使用ScreenManager时,我已经成功显示登录屏幕,并且它在没有调用Builder.load_string()的情况下工作我在线搜索并且每个工作解决方案都涉及调用我不想使用的Builder.load_string(),是否可以使其工作?

python-3.x kivy kivy-language
1个回答
1
投票

Problem - Black Window

1)当执行main.py时,Kivy会以小写字母查找与App类同名的Kv文件,如果以“App”结尾则查找“App”,例如:

NCOApp -> nco.kv

2)您已创建LoginScreen的实例,但没有与之关联的视图。

Solution

在文件夹GUI中创建一个kv文件nco.kv并为LoginScreen添加以下视图:

#:include GUI//login.kv

Output

Kivy Output

© www.soinside.com 2019 - 2024. All rights reserved.