无法将Kivy设置为全屏问题

17

我正在尝试编写一个运行Kivy全屏的应用程序。但是我遇到了以下问题:

1)当我运行以下命令时:

#Config.set('graphics', 'fullscreen', 1)

然后kivy会全屏显示,但窗口周围有很多黑色空间。即使我把图片拉长了,kivy在显示时仍会剪切图片。

2) 当我运行此命令将窗口大小设置为屏幕大小时:

Config.set('graphics', 'width', '1366')
Config.set('graphics', 'height', '768')
这种方式实际上比全屏给出了更好的结果,但是kivy返回的高度参数仅为715,而不是768,这是我在上面的Config.set()函数中告诉kivy使用的值(如您可以看到的)。
我的屏幕分辨率是1366x768。
我该如何解决这个问题并使我的kivy应用程序真正全屏?
非常感谢。

你的问题解决了吗? - Totem
不,我已经停止在这个项目上的工作。 - Pototo
7个回答

17

我遇到了类似的问题。使用“自动”选项为我消除了这些条纹。

Window.fullscreen = 'auto'

从Kivy配置对象文档中引用: "如果设置为自动,则将使用当前显示器的分辨率。这很可能是您想要的。"


1
这会将笔记本电脑的分辨率更改为应用程序的分辨率,我希望应用程序能够扩展到笔记本电脑的分辨率 :( - CpILL
1
'auto' 的问题在于在某些平台上它似乎无法检测到正确的屏幕尺寸,因此您还需要通过 Window.size = (w, h) 手动设置它,正如 Joao Paulo 在其中一个答案中提到的那样,尽管您已经选择了 'auto'。因此,当 'auto' 无法检测到正确的尺寸时,它只是一种花哨的替代品,具有相同的效果。我不确定是平台还是窗口提供程序的问题,但无论如何,从现在开始我都会手动设置大小以避免未来的问题。 - drakorg
完美解决方案 - Google

15

尝试

from kivy.core.window import Window
Window.fullscreen = True

在调用 App.run() 方法之前执行此操作,它应该可以切换到全屏模式。

干杯


1
对我来说,这并没有解决边缘周围的黑色问题。它与Config.set方法完全相同。 - Totem
1
这个答案解决了问题,我不会再遇到任何“黑色”空白。 - Cid-El
只是一个问题,这个能在全屏的安卓应用上工作吗? - Cid-El
我删掉了你的句号,因为它没有问题,但是如果你想加回去也可以。谢谢,这真的很有用。 - Xantium
1
这可能是因为我正在运行Linux,但当我这样做时,我的屏幕开始疯狂地改变 - 每半秒钟在黑屏和背景之间切换。 - Josie Thompson
这对我来说也没有解决“边缘黑色”问题。我使用的是3440x1440p分辨率的Windows PC。 - Asker

11

我按照以下方式成功完成了:

from kivy.core.window import Window
Window.maximize()

1
这是最简单和最有效的解决方案。其他解决方案要么无法工作,要么在我的本来就很快的游戏PC上非常缓慢(Windows 10,3440x1440p屏幕)。 - Asker
这个解决方案在最大化窗口时运行良好,但当应用程序被最小化并且用户尝试再次打开应用程序时,应用程序不会显示出来。有没有任何解决方法? - Kavyajeet Bora
这不是全屏解决方案。 - Google

6

我只是想补充一下:

from kivy.core.window import Window
Window.size = (1366, 768)
Window.fullscreen = True

4

这对我有效:

Config.set('graphics', 'fullscreen', 'auto')

2

对于那些仍在努力寻找如何实现真正全屏的人来说,最近我成功地通过在全屏调用之后添加Config.set('graphics', 'window_state', 'maximized')来消除了那些黑色条纹。整个代码如下:

from kivy.config import Config

# ...

if __name__ == "__main__":

    Config.set('graphics', 'fullscreen', 'auto')
    Config.set('graphics', 'window_state', 'maximized')
    Config.write()
    YourApp().run()

配置位于 from kivy.config import Config - CpILL

0
无论您的分辨率是多少,这都可以正常工作。
from kivy.core.window import Window
Window.fullscreen = True
Window.maximize()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接