我如何在 Kivy 中有多个 windows?

How do I have multiple windows in Kivy?

我正在尝试从一个完全不同的 GUI 打开一个 GUI。我在桌面上开发, windows 彼此的大小不同。我查看了屏幕管理器,但我觉得好像有更简单的方法可以做到这一点。

提前致谢!

可以,但有点不方便。问题是 kivy 每个应用程序只支持一个 window,所以你需要以某种方式解决它。我个人只是在单个 window 中使用多个 *Layout(它们是具有不同功能的不同 GUI),根据需要显示和隐藏它们。显然这种方法有其局限性,例如它不支持多显示器,但它很简单。

然后在 SO 上有 ,人们为每个 window 生成单独的 kivy 应用程序,从而获得可以相对拖动和调整大小的 windows。它需要一些子进程的摆弄和应用程序之间的通信,但这种方法更强大。

ScreenManager,据我所知,对您没有帮助:它只允许为同一个 window 定义多个小部件树,并在它们之间动态切换。这是触摸屏上的正常用例,但在桌面上几乎没有意义。老实说,对于 kivy 中的很多事情来说都是如此。如果你以后不打算转向手机,Tkinter 或 PyQT 可能是比 kivy 更好的选择。

您可以使用 PageLayout 或 ScreenManager。他们可以一次创建多个屏幕(不是 WINDOWS)。他们真的很有帮助!因为kivy不支持多个windows,你可以使用那些。

from kivy.uix.pagelayout import PageLayout

from kivy.uix.screenmanager import Screen, ScreenManager. FadeTransition