GridLayout不在Kivy中滚动

时间:2016-11-26 21:23:17

标签: python scrollview kivy

请告诉我为什么这不起作用,整个程序运行正常,它使用主程序中的功能来获取它的文本,但它不会滚动,所以用户赢了& #39;能够查看整个输出。

<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

编辑:

  • 我已经尝试过和以前的许多答案一样,在评论中提到的特定答案中,我收到了一个错误说&#34; NoneType&#34;没有属性&#34; bind&#34;。
  • 我删除了大小提示,它仍然无法正常工作,但无论如何,谢谢。
  • 文字肯定足够长。

2 个答案:

答案 0 :(得分:1)

我认为标签的大小没有设置,我同意可能会让人感到困惑,Label有一个小部件大小(size作为所有小部件)和texture_size,它设置为实际显示文本的大小,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

你应该全力以赴。

答案 1 :(得分:0)

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