boxlayout 中的文本左对齐

Mar*_*tin 1 python python-2.7 kivy kivy-language

用户.kv

#:kivy 1.10.0
#:import CoreImage kivy.core.image.Image
#:import os os

<SelectableButton>:
    # Draw a background to indicate selection
    canvas.before:
        Color:
            rgba: (0, 0.517, 0.705, 1) if self.selected else (0, 0.517, 0.705, 1)
        Rectangle:
            pos: self.pos
            size: self.size
Run Code Online (Sandbox Code Playgroud)
  1. 如何添加用户列表的背景颜色
  2. 如何左对齐移动

iko*_*lim 6

文本对齐 - 按钮/标签

默认情况下,文本图像(纹理)仅足够大以包含字符并位于中心。valign 属性将不起作用,而 halign 属性仅在文本包含换行符时才起作用;即使 halign 设置为左​​侧(默认情况下),单行文本也会显示为居中。

为了使对齐属性生效,请设置 text_size,它指定文本对齐的边界框的大小。例如,以下代码将此大小绑定到按钮/标签的大小,因此文本将在小部件边界内对齐。这也会自动将按钮/标签的文本换行以保留在该区域内。

padding_x 是小部件框中文本的水平填充。默认为 0。以下代码的值为 5,以便文本不靠近右边框。

左对齐

text_size: self.size
valign: "middle"
padding_x: 5
Run Code Online (Sandbox Code Playgroud)

背景色

背景颜色,格式为 (r, g, b, a)。

这充当纹理颜色的乘数。默认纹理是灰色的,因此只需设置背景颜色就会得到较暗的结果。要设置纯色,请将background_normal设置为“”。

background_color: (1, 1, 0, 1)
Run Code Online (Sandbox Code Playgroud)

解决方案 - 文本左对齐和背景颜色

<SelectableButton>:
    # Draw a background to indicate selection
    canvas.before:
        Color:
            rgba: (0, 0.517, 0.705, 1) if self.selected else (0, 0.517, 0.705, 1)
        Rectangle:
            pos: self.pos
            size: self.size
    background_color: (1, 1, 0, 1)
    text_size: self.size
    valign: "middle"
    padding_x: 5
Run Code Online (Sandbox Code Playgroud)

输出

在此输入图像描述