美文网首页
BoxLayout中的size_hint(2)

BoxLayout中的size_hint(2)

作者: PythonDeveloper | 来源:发表于2021-10-09 19:46 被阅读0次

之前写过一篇如何理解和使用BoxLayout中的size_hint?,解释了为什么BoxLayout中如果有children widget不定义size_hint时,widget的尺寸与预期不一致。现在发现如果BoxLayout中只有一个Widget,无论如何定义size_hint,都会出现某个方向(比如orientation为vertical时的y)总是占满全部Layout。

比如,如下的界面定义中,预期是:标签宽度为窗口宽度的0.5,高度也为其0.5。实际上,宽度符合预期,高度依然是窗口的高度。这究竟是怎么回事呢?

BoxLayout:
    orientation: "vertical"
    Label:
        text: "abc"
        size_hint: 0.5, 0.5

Google了一下,发现了Organizing with Layouts这篇文章,里面提到了一个可控尺寸(Controlled Dimension)的概念,豁然开朗。然后大略看了一下源码,果然如此。

原文是这么说的:A box layout control (manage, automatic assign) the sizes of its children in the controlled dimension using a simple calculation: a child's relative size is its hint size divided by the sum of all children's hint size.翻译成中文就是:在可控尺寸的方向上(vertical中的y和horizontal中的x),任一子Widget的相对尺寸=该Widget的对应size_hint / 该方向上所有size_hint的总和。

针对上面的例子,由于只有一个Widget,所以其相对高度 = 0.5 / 0.5 = 1。无论如何定义size_hint_y,该标签都会自动占满整个Layout的高度。

在BoxLayout的文档中,并没有对Controlled Dimension进行说明,所以总感觉很奇怪。明白了其中的概念后就豁然开朗了。希望能对遇到同样问题的开发者有所帮助。

参考

Organizing with Layouts

相关文章

  • BoxLayout中的size_hint(2)

    之前写过一篇如何理解和使用BoxLayout中的size_hint?[https://www.jianshu.co...

  • 如何理解和使用BoxLayout中的size_hint?

    最近使用Kivy进行简单的图形用户界面开发。在使用BoxLayout时,发现size_hint的行为跟预期的不一致...

  • MotionBuilder Python Script09 -

    最近发现了咪咕音乐可以听周杰伦的歌 我们再来看一下MoBu中的Container的实现,与之前的BoxLayout...

  • MotionBuilder Python Script06 -

    今天再来介绍一下Motionbuilder里面的Box布局 一、BoxLayout 这里主要是关于搭建出Box之后...

  • 🐑中-2

    昨天白天一直很好啊,只泡了一次茶叶,喝了大约1.5升水。吃饭也挺正常,能吃能喝的,也没有发热!没吃药!但是,脑壳儿...

  • 2020-01家长园地

    中2 中2 大2 中2 大1 中1 小1 小2

  • 成长中的“贵人”(2)

    “贵人”一词,在常人的思维里是对前途事业有帮助的人,一般指比自己年长的人。我在程村小学的教学过程中就有一位贵人...

  • JavaScript中的正则2

    在上一篇文章中主要整理了下JavaScript中正则相关内容,为了以后方便查询先贴上一网上已经整理好的一这张图,主...

  • (2)scrapy中的settings

    settings概述 我们在使用scrapy的时候,经常需要设置或者修改一些参数,而scrapy的参数共分为5个级...

  • 行走中的清凉(2)

    2010年8月12日 五日晨,一行人驱车前去华蓥山大峡谷。峡谷位于华蓥山靠邻水县一侧山中,距县城大约四五十公里。...

网友评论

      本文标题:BoxLayout中的size_hint(2)

      本文链接:https://www.haomeiwen.com/subject/tstcoltx.html