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

Ces*_*sto 8 python python-3.x kivy

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

Config.set('graphics','width',500)
Config.set('graphics','height',400)
Config.set('graphics', 'resizable', False)
Run Code Online (Sandbox Code Playgroud)

我正在寻找的是使其可调整大小但有大小限制。我尝试在 API 上搜索它,但找不到。

小智 9

要设置窗口的最小尺寸,请使用这部分代码:

from kivy.core.window import Window

Window.size = (500, 400)
Window.minimum_width, Window.minimum_height = Window.size
Run Code Online (Sandbox Code Playgroud)


mat*_*fax 6

在导入任何其他 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
# ...
Run Code Online (Sandbox Code Playgroud)

检查API中的其他变量。


noE*_*ryo 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
Run Code Online (Sandbox Code Playgroud)