【问题标题】:size_hint_max_x not setting a max limit on widthsize_hint_max_x 没有设置宽度的最大限制
【发布时间】:2019-08-19 23:24:38
【问题描述】:

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

当不是None 时,size_hint_x is 时的 x 方向最大尺寸(以像素为单位,如宽度)也不是 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

"""))

这会产生这个:

尽管size_hint_max_x 是 30%,但按钮仍然是窗口的 50%。我希望按钮为 30%。

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

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

"""))

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

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

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    正如您所说,size_hint_max_x 以像素为单位,在使用size_hint 时用于传递最大尺寸。

    我看到你的代码的唯一问题是你改变了那里的顺序:size_hint_x_max:。什么时候应该是size_hint_max_x:

    【讨论】:

    • size_hint_max_x 很可能在某个时候被转换为整数。 0.3的整数转换为0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多