Kivy中文本超出视口问题:如何实现文本自动换行适配视口
解决Kivy Label文本自动换行问题
只需给Label添加几个关键属性即可实现文本在视口内自动换行:
<ContentScreen>: BoxLayout: orientation: 'horizontal' padding: 10 spacing: 10 Label: id: content_label pos_hint: {"center_x":0.5, "center_y":0.5} font_size: '16' # 核心:限制文本宽度为Label自身宽度,触发自动换行 text_size: (self.width, None) # 设置文本水平对齐方式,可选left/center/right halign: 'left' # 让Label高度自适应换行后的文本内容 size_hint_y: None height: self.texture_size[1] # 让Label占满BoxLayout的水平可用空间 size_hint_x: 1
关键属性说明:
text_size: (self.width, None):指定文本宽度限制为Label当前宽度,高度不做限制,文本超过宽度时自动换行。halign: 'left':控制文本的水平对齐方式,可根据需求改为center或right。size_hint_y: None+height: self.texture_size[1]:让Label高度适配换行后的文本总高度,避免内容被截断。size_hint_x: 1:确保Label在水平BoxLayout中占满全部可用水平空间,保证text_size的宽度设置生效。
若不需要水平布局,将BoxLayout的orientation改为vertical,核心属性依然适用。
内容的提问来源于stack exchange,提问作者Graham Patrick
相关产品推荐
相关产品推荐

