我已经看到了this question and answer,这与我要达到的目标非常接近。在
我正在寻找一个滚动视图,显示即将在我的MythTV盒录制。有一个显示日期的标题小部件(固定大小)和一个单独的小部件(BoxLayout)用于记录的详细信息(显示在标签子部件中)。在
我需要根据文本的高度调整框布局的大小。这里的问题是,文本最多的标签并不总是同一个标签,所以最大高度需要考虑所有子标签。在
我在KV语言文件里有这个:
<MythRecordingHeader>
text: root.rec_date
height: 25
size_hint_y: None
halign: "left"
<MythRecording>
orientation: "horizontal"
#height: 60
height: max(mrec_desc.texture_size[1], mrec_time.texture_size[1], mrec_title.texture_size[1])
size_hint_y: None
BGLabel:
id: mrec_time
size_hint: 0.2, None
text_size: self.width, None
height: max(self.texture_size[1], mrec_title.texture_size[1], mrec_desc.texture_size[1])
#size_hint_x: 0.2
text: root.rec["time"]
bgcolour: root.bg
BGLabel:
id: mrec_title
size_hint: 0.3, None
text_size: self.width, None
height: max(self.texture_size[1], mrec_time.texture_size[1], mrec_desc.texture_size[1])
#size_hint_x: 0.3
text: "{}\n{}".format(root.rec["title"], root.rec["subtitle"])
halign: "left"
bgcolour: root.bg
BGLabel:
id: mrec_desc
text: root.rec["desc"]
size_hint: 0.5, None
text_size: self.width, None
height: max(self.texture_size[1], mrec_time.texture_size[1], mrec_title.texture_size[1])
halign: "left"
bgcolour: root.bg
(BGLabel
是一个自定义小部件,它只是通过bgcolour
属性向标签添加纯色背景色)。在
在我的python文件中:
^{pr2}$这几乎和我所期望的一样——BoxLayouts的高度确实不同,总体上,显示所有的文本,但有一两次会有一些剪辑。我不清楚这是不是因为水平线。在
我现在把所有这些孩子放在一个盒子里。在
然而,我真正的问题是我需要在一个ScrollView中获得这个(因此我提到了这个链接)。为了让滚动工作,我想我需要设置框布局的高度,但我真的很难计算这个高度。在
在BoxLayout的子级上循环并查看height
属性只会显示MythRecordings
的高度为0。在
有没有办法可以得到所有子对象的总高度,并设置BoxLayout的高度,这样我的滚动视图就可以正常工作了?在
用GridLayout替换BoxLayout,并设置:
GridLayout的minimum_size属性自动跟踪其子级的大小。在
相关问题 更多 >
编程相关推荐