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

8

有没有一种方法可以设置kivy窗口的最小大小和最大大小。例如,以下代码允许在执行时设置默认值并使其不可调整大小:

Config.set('graphics','width',500)
Config.set('graphics','height',400)
Config.set('graphics', 'resizable', False)

我需要的是可以调整大小但有尺寸限制的内容。我试图在API中搜索,但找不到相关信息。
3个回答

9

若要设置窗口的最小尺寸,请使用以下代码段:

from kivy.core.window import Window

Window.size = (500, 400)
Window.minimum_width, Window.minimum_height = Window.size

5
在任何其他的kivy导入之前,需要设置默认的kivy图形值。在大多数情况下,理想的位置是在main.py中。
from kivy import Config
Config.set('graphics', 'width', '1200')
Config.set('graphics', 'height', '800')
Config.set('graphics', 'minimum_width', '800')
Config.set('graphics', 'minimum_height', '600')

import kivy
# ...

查看API文档以获取其他变量信息。


在导入任何其他Kivy模块之前应该使用Config.set。理想情况下,这意味着在您的main.py脚本的开头设置它们。 - Halil İbrahim Oymacı

5

您可以通过重写do_layout函数来检查大小变化来实现。
这个例子检查大小是否大于500,400。

from kivy.core.window import Window

class MyLayout(StackLayout):
    def __init__(self, **kwargs):
        super(MyLayout, self).__init__(**kwargs)

    def do_layout(self, *args, **kwargs):
        super(MyLayout, self).do_layout()
        width, height = Window.size
        if width > 500:
            Window.size = 500, Window.size[1]
        if height > 400:
            Window.size = Window.size[0], 400

这个答案很有用,但实际上调整大小看起来太不流畅了,因为它在调整大小之后又进行了一次调整。有没有一种方法可以阻止调整大小? - Cesar Augusto

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