You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kivy中设置白色线条的复选框?(非白色背景)

在Kivy中创建白色线条的复选框

要实现线条颜色为[1,1,1,1]的白色线条复选框(无白色背景),你可以直接通过Kivy的KV语言定制Checkbox的Canvas绘制逻辑,替代默认样式。以下是两种可行方案:

方案一:自定义可复用的Checkbox子类

在KV语言中定义继承自Checkbox的自定义控件,统一设置白色线条样式:

<WhiteLineCheckbox@Checkbox>:
    # 绘制白色边框
    canvas.before:
        Color:
            rgba: 1, 1, 1, 1
        Line:
            rectangle: self.x, self.y, self.width, self.height
            width: 2  # 线条宽度可按需调整
    # 绘制白色勾选标记
    canvas.after:
        Color:
            rgba: 1, 1, 1, 1
        Line:
            points: self.x + self.width*0.2, self.y + self.height*0.5, self.x + self.width*0.4, self.y + self.height*0.8, self.x + self.width*0.8, self.y + self.height*0.2
            width: 2

在Python代码中调用该自定义控件:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class MainLayout(BoxLayout):
    pass

class WhiteCheckboxApp(App):
    def build(self):
        return MainLayout()

if __name__ == "__main__":
    WhiteCheckboxApp().run()

对应的主KV文件(如main.kv):

MainLayout:
    WhiteLineCheckbox:
        size_hint: None, None
        size: 40, 40  # 设置复选框尺寸

方案二:直接定制单个Checkbox

如果仅需修改单个Checkbox样式,无需自定义子类,直接在KV中覆盖其Canvas指令:

BoxLayout:
    Checkbox:
        size_hint: None, None
        size: 40, 40
        # 绘制白色边框,覆盖默认背景
        canvas.before:
            Color:
                rgba: 1, 1, 1, 1
            Line:
                rectangle: self.x, self.y, self.width, self.height
                width: 2
        # 绘制白色勾选标记
        canvas.after:
            Color:
                rgba: 1, 1, 1, 1
            Line:
                points: self.x + self.width*0.2, self.y + self.height*0.5, self.x + self.width*0.4, self.y + self.height*0.8, self.x + self.width*0.8, self.y + self.height*0.2
                width: 2

关键说明

  • 仅保留Line指令绘制边框和勾选标记,不要添加Rectangle填充指令,避免出现白色背景。
  • 可通过调整width参数改变线条粗细,修改points参数调整勾选标记的形状与位置。

内容的提问来源于stack exchange,提问作者BlueHawk77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:48:20