Я пытаюсь создать простое приложение Kivy (1.10.1) с диспетчером экрана и файлами .kv, но я продолжаю получать черный экран.
Мой 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()
main.py
from GUI.nco import NCOApp
from kivy.config import Config
Config.set("graphics", "fullscreen", "auto")
if __name__ == '__main__':
NCOApp().run()
Iуже удалось отобразить экран входа в систему, когда я не использовал ScreenManager, и он работал без вызова Builder.load_string()
Я искал в Интернете, и все рабочие решения включают вызов Builder.load_string()
, который я предпочел бы не использовать, возможно лизаставить это работать?