我一直在用YouTube频道学习Kivy。我制作了两个屏幕和一个屏幕管理器,但它们都是python代码中的类。我看到了像WinManager = ScreenManager(transition=CardTransition())这样的例子,但我没有那样构造代码。如何用代码更改转换?我试图在类的init函数上完成它,但没有工作;并试图在kv文件中添加转换属性。也没起作用。
Python:
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen, CardTransition
class MainWindow(Screen):
pass
class AdminPanel(Screen):
pass
class WinManager(ScreenManager):
pass
kvTemplate = Builder.load_file("template.kv")
class MyMainApp(App):
def build(self):
return kvTemplate
if __name__ == "__main__":
MyMainApp().run()Kivy (.kv):
WinManager:
MainWindow:
AdminPanel:
<MainWindow>:
name: "loginPanel"
nickname: nicknameID
password: passwordID
key: keyID
GridLayout:
rows: 2
GridLayout:
cols: 2
Label:
text: "Nickname: "
TextInput:
id: nicknameID
multiline: False
Label:
text: "Password: "
TextInput:
id: passwordID
multiline: False
Label:
text: "Key: "
TextInput:
id: keyID
multiline: False
Button:
text: "Log in"
on_release:
app.root.current = "adminPanel"
root.manager.transition.direction = "up"
<adminPanel>:
name: "adminPanel"
Button:
text: "Back"
on_release:
app.root.current = "loginPanel"
root.manager.transition.direction = "down"发布于 2020-08-09 20:53:43
在您的kv文件中,您可以:
#:import CardTransition kivy.uix.screenmanager.CardTransition
WinManager:
transition: CardTransition()
MainWindow:
AdminPanel:https://stackoverflow.com/questions/63329517
复制相似问题