如何解决python kivy的问题-屏幕刷新问题
我在 python 中遇到 kivy 问题。 我在 kivy 网站开始教程 - pong in kivy。但是有一个小问题 - 当我在屏幕上创建一个球并且我想移动它时 - 在屏幕上创建了许多球 - 一帧一个球并且它们没有消失。 我放弃了,我在 youtube 上开始了第二个教程 - 创建登录屏幕。但是我对屏幕变化的动画有同样的问题。 您只需要看电影 (youtube):
有登录界面的代码:
python 文件:
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
class MainWindow(Screen):
pass
class SecondWindow(Screen):
pass
class WindowManager(ScreenManager):
pass
kv = Builder.load_file("kvfile.kv")
class MyMainApp(App):
def build(self):
return kv
if __name__ == '__main__':
MyMainApp().run()
kivy 文件:
#:kivy 2.0.0
WindowManager:
MainWindow:
SecondWindow:
<MainWindow>:
name: "main"
GridLayout:
cols: 1
GridLayout:
cols: 2
Label:
text: "Name:"
TextInput:
id: uname
multilane: False
Label:
text: "Password:"
TextInput:
id: upass
multilane: False
Button:
text: "Log in"
on_release:
app.root.current = "second"
<SecondWindow>:
name: "second"
Button:
text: "Go back"
pos_hint: {"x": 0.3,"y": 0.2}
size_hint: 0.4,0.2
on_release:
app.root.current = "main"
我不知道该怎么办。有什么帮助吗?
解决方法
你必须为你的屏幕命名。
WindowManager:
MainWindow:
name: 'main'
SecondWindow:
name 'second'
而不是调用 app.root.current
尝试调用 root.manager.current
这里是一些适用于我的计算机的示例代码...
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.lang import Builder
class MainWindow(Screen):
pass
class SecondWindow(Screen):
pass
class WindowManager(ScreenManager):
pass
kv = Builder.load_string(
"""
WindowManager:
MainWindow:
name: 'main'
SecondWindow:
name: 'second'
<MainWindow>:
name: "main"
GridLayout:
cols: 1
GridLayout:
cols: 2
Label:
text: "Name:"
TextInput:
id: uname
multilane: False
Label:
text: "Password:"
TextInput:
id: upass
multilane: False
Button:
text: "Log in"
on_release:
root.manager.current = "second"
<SecondWindow>:
name: "second"
Button:
text: "Go back"
pos_hint: {"x": 0.3,"y": 0.2}
size_hint: 0.4,0.2
on_release:
root.manager.current = "main"
"""
)
class MyMainApp(App):
def build(self):
return kv
if __name__ == '__main__':
MyMainApp().run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。