【问题标题】:How Do I Get Size Hints to Apply to Layout Elements, Not the Window, in Kivy如何在 Kivy 中获取大小提示以应用于布局元素而不是窗口
【发布时间】:2020-11-30 16:20:53
【问题描述】:

我有以下带有示例窗口大小的代码。我希望所有小部件都进入一个名为inlayBoxLayout,而不是划分窗口的百分比。但是,无论我将提示放在哪里或如何附加小部件,提示仍然适用于整个窗口。

如代码所示,对于 (500, 600) 的窗口,嵌体的尺寸应仅为 (480, 600),即最接近的 8 x 10 尺寸。但是,提示是针对 (500, 600) 大小呈现的:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.core.window import Window

Window.size = (500, 600)

class SCApp(App):
    def build(self):
        # Define the (relative) 8 x 10 inlay for the board.
        for n in range(8, Window.width, 8):
            if n * 1.25 <= Window.height:
                inlay_dims = (n, int(n * 1.25))
                print(inlay_dims)
            else:
                break
        inlay = BoxLayout(orientation="vertical")
        inlay.size = inlay_dims
        top_portion = BoxLayout(orientation="horizontal")
        inlay.add_widget(top_portion)
        top_portion.size_hint = (1, 0.1)
        top_portion.add_widget(widget=Button())
        mid_portion = BoxLayout(orientation="horizontal")
        inlay.add_widget(mid_portion)
        mid_portion.size_hint = (1, 0.8)
        btm_portion = BoxLayout(orientation="horizontal")
        inlay.add_widget(btm_portion)
        btm_portion.size_hint = (1, 0.1)
        top_portion.add_widget(widget=Button())
        return inlay

SCApp().run()

如何使_portion 布局的大小提示评估为inlay 给定的大小?

【问题讨论】:

    标签: python layout kivy


    【解决方案1】:

    当您使用size 时,您通常还必须使用size_hint=(None, None),因为size_hint 将覆盖大小设置。所以尝试替换:

        inlay = BoxLayout(orientation="vertical")
    

    与:

        inlay = BoxLayout(orientation="vertical", size_hint=(None, None))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 2012-12-10
      • 2014-09-19
      相关资源
      最近更新 更多