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

Posted

技术标签:

【中文标题】Config 设置窗口大小 Kivy 的最小值和最大值【英文标题】:Config Set min and max value for window size Kivy 【发布时间】:2019-07-09 08:35:31 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

from kivy.core.window import Window

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

【讨论】:

【参考方案2】:

您可以通过重写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

【讨论】:

这个答案很有用,但实际上调整大小看起来太有问题了,因为它会在调整大小后调整大小。有没有办法阻止调整大小?【参考方案3】:

在任何其他 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 是否有其他变量。

【讨论】:

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

以上是关于Config 设置窗口大小 Kivy 的最小值和最大值的主要内容,如果未能解决你的问题,请参考以下文章

Kivy - 如何根据显示大小设置窗口大小?

设置kivy窗口大小不起作用

如何通过环境变量设置 Java 的最小和最大堆大小?

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

2021-12-26:给定一个长度为n的数组arr,求有多少个子数组满足 : 子数组两端的值,是这个子数组的最小值和次小值,最小值和次小值谁在最左和最右无所谓。 n<=100000(10^5) n*(

如何在 Kivy 中设置小部件/布局的最小允许宽度/高度?