如何在Kivy中为color属性指定颜色值?其他可选方式有哪些?
Kivy中color属性的其他指定方式
除了常见的RGBA四元组/列表(0-1范围),Kivy的color属性还有以下几种指定方式:
十六进制字符串形式
支持多种格式的十六进制字符串,无需转换直接使用:- 3位RGB简写:
color: '#F0F'(对应红1、绿0、蓝1,Alpha通道默认1) - 4位RGBA简写:
color: '#F0F8'(红1、绿0、蓝1,Alpha为0.5) - 6位标准RGB:
color: '#FF00FF' - 8位标准RGBA:
color: '#FF00FF80'
- 3位RGB简写:
工具函数构造
通过kivy.utils模块的rgb()和rgba()函数快速生成颜色,KV语言中需先导入模块:#:import rgb kivy.utils.rgb #:import rgba kivy.utils.rgba Label: color: rgb(1, 0, 1) # 生成RGB颜色,Alpha默认1 color: rgba(1, 0, 1, 0.5) # 生成带指定透明度的RGBA颜色 color: rgb('#FF00FF') # 函数也支持直接传入十六进制字符串灰度值简化写法
Kivy支持灰度场景下的简化输入,会自动补全对应通道值:- 单值:
color: 0.5等价于(0.5, 0.5, 0.5, 1)(灰度+完全不透明) - 双值:
color: 0.5, 0.8等价于(0.5, 0.5, 0.5, 0.8)(灰度+指定透明度) - 三值:
color: 1, 0, 1等价于(1, 0, 1, 1)(RGB三色+完全不透明)
- 单值:
预定义颜色常量
Kivy内置了常用颜色的常量集合,导入kivy.colors模块后可直接调用:#:import colors kivy.colors Label: color: colors['red'] # 内置红色,对应(1, 0, 0, 1) color: colors['lightblue'] # 内置浅蓝色
内容的提问来源于stack exchange,提问作者MarianD
相关产品推荐
相关产品推荐

