[英]How to make kivy app from different py files
我正在尝试用不同的.py 文件制作应用程序。 但我不知道如何将它们添加在一起,我有一个主文件和一个登录文件,计划添加更多,但我现在正在试验这些。 它们现在非常基本,直到我弄清楚它们之间的这种“联系”,然后我将开始添加一些更复杂的东西。 我尝试了几件事,但它们没有用,但我将它们留在代码中供您查看(我试图让应用程序从 MainWindow 启动,并在按下第一个按钮时进入登录页面*)。 这是代码,请帮助我。
*现在当我按下按钮时,它给了我这个错误:OSError:异常:访问冲突写入0x0000000080006010
这是 main.py:
from kivy.lang import Builder
from kivy.app import App
import login
from kivy.uix.screenmanager import Screen
kv = Builder.load_string('''
<MainWindow>:
GridLayout:
cols:1
GridLayout:
rows:5
Button:
text:"NOVA ROBA"
on_release:
root.call_login()
Button:
text:"KUPCI"
Button:
text:"PRODATO"
Button:
text: "AGRONOMI"
Button:
text: "STANJE U MAGACINU"
''')
class MainWindow(Screen):
def call_login(self):
login.app().run()
pass
class main_app(App):
def build(self):
return MainWindow()
if __name__ == '__main__':
main_app().run()
这是登录.py:
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.app import App
class Login(Screen, App):
def build(self):
return
pass
kv = Builder.load_string('''
<Login>:
name:"login"
GridLayout:
rows:2
GridLayout:
cols:2
Label:
text:"Password: "
TextInput:
id:passwd
multiline: False
Button:
text: "Submit"
on_release:
passwd.text = ""
''')
class app(App):
def build(self):
return Login()
if __name__ == "__main__":
app().run()
您正在创建 2 个不需要的应用程序。 而不是从 Loginscreen 中的 Screen 和 App 都继承,而是仅从 Screen 继承。 然后在 main.py 的 build 方法中创建一个 ScreenManager,然后将导入的登录屏幕添加为小部件,要切换到新屏幕,请在 MainWindow 的 call_login 方法中使用 self.manager.current = "login"
class app(App):
def build(self):
sm = ScreenManager()
sm.add_widget(MainWindow())
sm.add_widget(Login())
return sm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.