GridLayout 在 Kivy 中不滚动
GridLayout Not Scrolling in Kivy
请告诉我为什么这不起作用,整个程序运行良好,它使用主程序中的一个函数来获取它的文本,但它不会滚动,因此用户将无法查看整个输出。
<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
编辑:
- 我已经尝试过与之前的许多答案相同的操作,在评论中提到的特定答案中,我收到一条错误消息,提示 "NoneType" 没有属性 "bind"。
- 我删除了尺寸提示,它仍然不起作用,但还是谢谢了。
- 文字绝对够长
我相信标签的大小没有设置,我同意一开始可能会造成混淆,标签有一个小部件大小(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
你应该一切就绪。
您应该为 ScrollView 的 属性 scroll_y
设置一个介于 0 和 1 之间的值。
请告诉我为什么这不起作用,整个程序运行良好,它使用主程序中的一个函数来获取它的文本,但它不会滚动,因此用户将无法查看整个输出。
<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
编辑:
- 我已经尝试过与之前的许多答案相同的操作,在评论中提到的特定答案中,我收到一条错误消息,提示 "NoneType" 没有属性 "bind"。
- 我删除了尺寸提示,它仍然不起作用,但还是谢谢了。
- 文字绝对够长
我相信标签的大小没有设置,我同意一开始可能会造成混淆,标签有一个小部件大小(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
你应该一切就绪。
您应该为 ScrollView 的 属性 scroll_y
设置一个介于 0 和 1 之间的值。