修复了Kivy程序的窗口大小

时间:2016-05-11 13:38:05

标签: python kivy

有没有办法保持Kivy程序的窗口大小固定?在某种意义上固定其窗口大小不能增加或减少。例如,我想要一个窗口大小为500x500的Kivy程序,最终用户无法更改窗口大小或将其转换为全屏。我尝试使用相同的值设置height,width,minimum_height和minimum_width all仍然可以更改窗口大小并全屏显示。

5 个答案:

答案 0 :(得分:7)

有一种方法可以配置应用以禁用调整大小

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

此外,您可以设置窗口的默认宽度 - 高度 记住一些事情。在应用程序开头就这样做,它将仅保留该应用程序的设置。但是,如果您再运行Config.write(),则会将设置保存在配置文件中。

  在导入任何其他Kivy模块之前,应使用

Config.set。理想情况下,这意味着在main.py脚本的开头设置它们。   或者,您可以使用永久保存这些设置   Config.set然后Config.write。在这种情况下,您需要重新启动   应用程序让更改生效。请注意,这种方法会   影响所有Kivy应用系统。

阅读this wiki文章了解更多信息。

答案 1 :(得分:4)

实际上有很多方法可以做到这一点,其中很多都取决于你编写代码的方式,因为你没有给我们一个例子,我只能向你展示基本的例子......

比如说你不使用kivy设计语言并且你在直接python中做你的项目,你可以用以下方式设置Root小部件

Root = Widget(size = (500,500))

您也可以避免这种情况,例如

Window.size = (500, 500)

现在,如果您使用的是kv设计语言,除了在.kv文件中设置画布,矩形等的大小之外,它很容易。

正如@ Leva7所提到的,你也可以使用例如

from kivy.config import Config
Config.set('graphics', 'resizable', '0') #0 being off 1 being on as in true/false
Config.set('graphics', 'width', '500')
Config.set('graphics', 'height', '500')

请注意,上面的内容(即,Config.set())应该放在导入部分附近的源代码顶部!

答案 2 :(得分:2)

您可以在kivy-1.10.0 +

import kivy
from kivy.app import App
from kivy.core.window import Window
from kivy.config import Config
kivy.config.Config.set('graphics','resizable', False)



class MyApp(App):
    def build(self):
        Window.size = (1280,720)
MyApp().run()

答案 3 :(得分:0)

上述配置默认情况下不适用于RPi。

<script>

不起作用。 如果有人需要禁用全屏并想完全控制其RPi上的屏幕尺寸,则:

disable kivy fullscreen

步骤:

<div>

使用Python3.5在RPi 3B Stretch上测试

答案 4 :(得分:0)

固定大小的一种不吸引人的方法是添加事件侦听器。

from kivy.core.window import Window

_fixed_size = (425, 700) #desired fix size

def reSize(*args):
   Window.size = _fixed_size
   return True
Window.bind(on_resize = reSize)