KivyMd中Snackbar设置文本颜色不生效且显示颜色标签问题
你遇到的问题是因为KivyMD的Snackbar默认关闭了富文本解析功能,文本中插入的BBCode颜色标签会被当作普通文本直接展示,不会被解析为样式。
解决方案
方案1:开启富文本解析(适合同一段文本需要设置多段不同颜色的场景)
创建Snackbar时新增markup=True参数开启BBCode解析即可,示例代码如下:
Snackbar( text="[color=181818]Elemento copiato negli appunti![/color]", markup=True ).show()
方案2:直接设置全局文本颜色(适合整段文本统一颜色的场景)
如果不需要分段设置颜色,可以直接通过text_color参数指定文本颜色,不需要写BBCode标签,示例代码如下:
# 十六进制颜色#181818对应归一化到0~1区间的RGBA值为(24/255, 24/255, 24/255, 1) Snackbar( text="Elemento copiato negli appunti!", text_color=(24/255, 24/255, 24/255, 1) ).show()
版本兼容兜底方案
如果你使用的KivyMD版本较旧,上述参数不生效,可以通过修改Snackbar内部文本控件属性实现效果:
snackbar = Snackbar(text="[color=181818]Elemento copiato negli appunti![/color]") snackbar._label.markup = True # 不需要富文本的话也可以直接改颜色:snackbar._label.text_color = (24/255, 24/255, 24/255, 1) snackbar.show()
内容的提问来源于stack exchange,提问作者Profesional Failer
相关产品推荐
相关产品推荐

