【发布时间】:2020-07-14 00:08:14
【问题描述】:
我制作了一个 kivy 应用程序,所有内容都在这个类中完成:
类 MyGame(Widget):
因此,我的 kv 文件看起来像这样
<MyGame>:
GridLayout:
rows: 1
size: root.width, root.height
canvas.before:
Color:
rgba: 1, 1, 1, 1
Rectangle:
size: self.size
FloatLayout:
Button:
id: question
font_size: 20
size_hint: 0.77, 0.1
pos_hint: {"x": 0.09, "y":0.85}
on_press: root.start_round()
SmoothButton:
但现在我的游戏快完成了,我觉得有必要加入 2 个屏幕:
One is for the game menu (to let the user select a game mode)
The other one is for the game itself
我试图将它包含在我的 main.py 中
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.lang import Builder
class MenuScreen(Screen):
pass
class GameScreen(Screen):
pass
class WindowManager(ScreenManager):
pass
kv = Builder.load_file('my.kv')
class MyGame(Widget):
...
我从 App 继承的类在构建中返回 kv
这是我的 kv 文件:WindowManager: MenuScreen: GameScreen:
<MenuScreen>:
name: 'Menu'
Button:
<GameScreen>:
name: 'Game'
<MyGame>:
如您所见,我尝试将 MyGame(Widget) 嵌套在 GameScreen(Nest) 中,但是当我运行代码时,会打开一个屏幕,但屏幕是黑色的
有人知道我可以如何解决我的问题吗?这几乎是我在 kivy 中的第一个项目,所以我还有很多基础知识要学。谢谢
【问题讨论】:
标签: python kivy kivy-language