【发布时间】:2019-08-19 23:24:38
【问题描述】:
我正在参加关于使用 Kivy 和 Python 编写移动应用程序的 Udemy 课程。课程开始设置size_hint 和size_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 不对小部件强制设置最大尺寸,它有什么好处?
【问题讨论】: