在 python 脚本中导入 kivymd 模块时,会出现一个空白窗口

Posted

技术标签:

【中文标题】在 python 脚本中导入 kivymd 模块时,会出现一个空白窗口【英文标题】:When importing a kivymd module in a python script, a blank window appears 【发布时间】:2021-07-24 11:50:06 【问题描述】:

这是有问题的 python 脚本,存储在 file.py 中:

from kivymd.uix.tab import MDTabsBase

就是这样。没有别的了。

当我使用这个命令运行它时:

python file.py

一个空白窗口很快打开,然后消失。

我已阅读名为 tab.py 的 kivymd.uix.tab 源文件,但看不到任何在类定义之外运行的代码。

我使用的kivymd版本来自前几天下载的github master分支。

我不明白为什么这个空白窗口会在我调用 App().run() 之前出现。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

导入kivy.core.window 时,Kivy 会自动创建一个窗口。这是一个从未修复过的老设计错误,因为它几乎无关紧要,并且会破坏许多碰巧依赖它的应用程序,尽管我们最近讨论了如何纠正它。

所以,这可能是 kivymd 最终导入的内容,可能没有简单的解决方法。

根据您的需要,一种可能有效的解决方法是构建 kivy 无头,这样它就不会生成窗口。这意味着您的脚本永远无法创建一个窗口。

【讨论】:

以上是关于在 python 脚本中导入 kivymd 模块时,会出现一个空白窗口的主要内容,如果未能解决你的问题,请参考以下文章

无法在 python 脚本中导入 google.cloud 模块

在 Python 3 中导入模块时出现 AttributeError

模块可以在控制台导入,但不能在脚本中导入

如何在 C++ 程序将使用的 Python 脚本中导入 cpython 模块?

在完全不同的目录中导入 python 模块

如何在 python 脚本中导入绘图图?