【问题标题】:Kivy: self.minimum_height not working for widget inside ScrollViewKivy:self.minimum_height 不适用于 ScrollView 内的小部件
【发布时间】:2018-08-06 07:25:56
【问题描述】:

我最近开始接触 Kivy,现在我正在尝试为我和我的朋友创建应用程序,这是一个 D&D 表。我想在一个选项卡中包含所有重要的统计信息,您可以在其中向下滚动,以便文本字体不必那么小,但我无法使用 GridLayout 的self.minimum_height 属性将其包含其他元素。

我正在运行 kivy 版本 1.10.0 如果我手动设置高度,则 ScrollView 可以正常工作。

这是我的 .kv 文件

<TabbedPanel>:
do_default_tab: False
tab_pos: 'bottom_mid'
tab_width: self.width / 4
TabbedPanelItem:
    text: "Character"
    ScrollView:
        size_hint: (1, None)
        height: root.height
        GridLayout:
            cols: 1
            size_hint_y: None
            height: self.minimum_height
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"
            Button:
                text: "Hello"

TabbedPanelItem:
    text: "Weap's & Mods"
TabbedPanelItem:
    text: "Vehicle"
TabbedPanelItem:
    text: "Vehicle Upgr"

【问题讨论】:

    标签: python kivy kivy-language


    【解决方案1】:

    您还需要为每个包含的小部件设置显式高度,以便 GridLayout 可以将它们加在一起以计算其最小高度。例如,在您的示例中,您可以在每个按钮中添加以下行:

    size_hint_y: None
    height: dp(30)
    

    【讨论】:

    • 谢谢!它终于奏效了。似乎有点奇怪。是否有其他解决方法或者这是开发人员设计 ScrollView 的默认方式?
    • 这是设计使然。如果您不为按钮设置高度,您希望 GridLayout 的 minimum_height 是多少?
    • 我希望它是按钮默认高度的总和。
    【解决方案2】:

    还不能评论,所以必须单独回答: 你可以:

    <My_button>(Button):
        size_hint_y: None
        height: dp(30)
    

    并在您的 Gridlayout 中使用它。这样可以省去为每个条目重复它。

    【讨论】:

    • 这必须超出根元素的范围吧?在此示例中,它将是 &lt;TabbedPanel&gt;
    • 是的 mybutton 的定义超出了 tabbedpannel 的定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2015-01-14
    • 1970-01-01
    • 2021-10-03
    • 2012-11-12
    • 2011-04-29
    相关资源
    最近更新 更多