设置kivy窗口大小不起作用

Posted

技术标签:

【中文标题】设置kivy窗口大小不起作用【英文标题】:Setting kivy window size not working 【发布时间】:2016-08-28 00:40:34 【问题描述】:

我关注了this *** question,但两种方法都不起作用。

这是我的代码:

from kivy.app import App
from kivy.uix.label import Label
from kivy.core.window import Window

class MyApp(App):
    def build(self):
        return Label(text='text')

if __name__ == '__main__':
    Window.size = (1366, 768)
    MyApp().run()

有时尺寸会起作用,Kivy 会创建一个尺寸为800x600 的屏幕,然后将其更改为1366x768。有时 Kivy 会创建一个大小为800x600 的屏幕,然后将其更改为1366x768,然后又改回800x600

如果我将代码更改为:

from kivy.app import App
from kivy.uix.label import Label
from kivy.core.window import Window

from kivy.config import Config
Config.set('graphics', 'width', '200')
Config.set('graphics', 'height', '200')

class MyApp(App):
    def build(self):
        return Label(text='text')

if __name__ == '__main__':
    MyApp().run()

使用此代码,我的屏幕上没有任何反应。我正在使用Kivy v1.9.2-dev0。我应该怎么做才能解决它?

【问题讨论】:

几天前它对我有用。尝试较小的工作。日志中没有任何消息吗? 不,日志工作和不工作没有区别。 =( 如果正确调整大小,应该会有类似[DEBUG] [Window] Resize window to (x, y) 的消息。还有其他消息吗?最好将整个日志粘贴到此处以及其他信息,例如操作系统、32/64、窗口提供程序等。从那个大小我猜你想实现全屏,因此也尝试使用Window.fullscreen = True 这是我的日志,bpaste.net/show/3105907ff5a3。我正在使用 Gentoo Linux - 64 位,xfce 默认窗口管理和全屏工作。 Mayve pygame 不适用于 master 分支。立即尝试默认提供程序 sdl2。 【参考方案1】:

将配置设置放在所有其他导入之前 - 导入 Window 后为时已晚,因为已访问配置以确定其初始大小,而您的新设置将被忽略。

【讨论】:

谢谢你,它成功了。知道为什么有时使用 Window 更改大小有效吗? 听起来像是一种竞争条件,我不确定它究竟为什么会发生,但这可能与应用程序首次启动时发生的很多事情有关。【参考方案2】:

使您的窗口不可调整大小

from kivy.config import Config
Config.set('graphics','resizable',0)

设置窗口大小

from kivy.core.window import Window
Window.size = (600, 500)

参见https://kivyapps.wordpress.com/video-streaming-using-kivy-and-python/的示例

【讨论】:

以上是关于设置kivy窗口大小不起作用的主要内容,如果未能解决你的问题,请参考以下文章

electron初始设置窗口大小不起作用

固定 Kivy 程序的窗口大小

Config 设置窗口大小 Kivy 的最小值和最大值

md-grid-list 响应属性在调整浏览器窗口大小时不起作用

Kivy:弹出窗口中的多个项目不起作用

Kivy 如何创建一个可根据内容调整大小的弹出窗口?