【问题标题】:GridLayout Not Scrolling in KivyGridLayout 在 Kivy 中不滚动
【发布时间】:2016-11-26 21:23:16
【问题描述】:

请告诉我为什么这不起作用,整个程序工作正常,它使用主程序中的一个函数来获取它的文本,但它不会滚动,所以用户将无法查看整个输出。

<AnswerScreen@Screen>:
    input_textb: input_textb
    ScrollView:
        size_hint: (1, None)
        do_scroll_y: True
        do_scroll_x: False
        bar_width: 4
        GridLayout:
            padding: root.width * 0.02, root.height * 0.02
            cols: 1
            size_hint_y: None
            size_hint_x: 1
            height: self.minimum_height
            Label:
                id: input_textb
                text: ""
                font_size: root.height / 25
                text_size: self.width, None

编辑:

  • 我已经尝试过与许多以前的答案相同的方法,在 cmets 中提到的特定答案中,我收到一条错误消息,提示“NoneType”没有属性“bind”。
  • 我删除了尺寸提示,它仍然不起作用,但还是谢谢。
  • 文字绝对够长。

【问题讨论】:

标签: python scrollview kivy


【解决方案1】:

我相信标签的大小没有设置,我同意一开始可能会造成混淆,标签有一个小部件大小(size 作为所有小部件)和一个texture_size,设置为显示的实际大小text, kivy 一开始并没有以任何特定的方式将这两者联系起来,由你决定一个如何影响另一个,你做了一半的工作将 text_size 设置为(width, None),这迫使纹理具有小部件的宽度,但您缺少交易的另一部分,即您希望小部件与生成的纹理一样高。要使此大小生效,您还必须为 Label 禁用 size_hint_y,因为它位于 GridLayout 中。

        Label:
            id: input_textb
            text: ""
            font_size: root.height / 25
            text_size: self.width, None
            height: self.texture_size[1]
            size_hint_y: None

你应该准备好了。

【讨论】:

    【解决方案2】:

    您应该为 ScrollView 的属性 scroll_y 设置一个介于 0 和 1 之间的值。

    【讨论】:

      猜你喜欢
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2022-08-13
      • 2021-01-29
      • 2015-12-03
      • 1970-01-01
      相关资源
      最近更新 更多