设置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窗口大小不起作用的主要内容,如果未能解决你的问题,请参考以下文章