首页 > 解决方案 > size_hint_max_x 没有设置宽度的最大限制

问题描述

我正在参加关于使用Kivy和编写移动应用程序的 Udemy 课程Python。课程进入设置size_hintsize_hint_max(或具体来说,size_hint_x和 s ize_hint_max_x)。我不明白size_hint_max_x。本课唯一解释的是,当您设置size_hint_max_x为时None,小部件会占据整个宽度(它没有解释原因)。它还引导我查看官方文档,该文档定义size_hint_max_x为:

当 notNone时,x 方向的最大尺寸(以像素为单位,如宽度)size_hint_x is也不是 None。

类似于size_hint_min_x,除了它设置最大宽度。

听起来我可以设置沿 x 轴的按钮大小的最大限制。不是这样。

这是我的代码:

from kivy.lang import Builder
from kivy.base import runTouchApp

runTouchApp(Builder.load_string("""

FloatLayout:
    Button:
        text: 'B1'
        size_hint_x: .5
        size_hint_x_max: .3

"""))

这会产生:

在此处输入图像描述

按钮仍然是窗口的 50%,即使size_hint_max_x是 30%。我希望按钮为 30%。

文档中的定义说size_hint_max_x是以像素为单位的,所以我尝试了这个:

FloatLayout:
    Button:
        text: 'B1'
        size_hint_x: .5
        size_hint_x_max: 100

"""))

但这似乎也不起作用。按钮仍然是超过 100 像素的窗口的 50%。如果我尝试设置size_hint_x to200,我会得到相同的结果(不遵守 max x 的 100 像素限制)。

size_hint_x_max如果它不对小部件强制执行最大尺寸有什么好处?

标签: pythonkivy

解决方案


正如您所说,size_hint_max_x以像素为单位,它用于在使用size_hint.

我在您的代码中看到的唯一问题是您在以下位置更改了顺序:size_hint_x_max:。什么时候应该size_hint_max_x:


推荐阅读