如何在Textual的TCSS中定位SelectionList选中项的文本并修改其颜色?
如何在Textual的TCSS中定位SelectionList选中项的文本并修改其颜色?
嘿,我来帮你搞定这个问题!先回顾下你的场景:你在Python控制台应用里使用了Textual的SelectionList,代码大概是这样的:
... yield SelectionList[str]( *tuple(self.selection_items), id="mylist" ) ...
要在.tcss里给选中项的文本修改颜色,你可以利用Textual内置的组件类名和状态伪类来精准定位。具体操作很简单,在你的.tcss文件里添加以下规则就行:
/* 匹配所有SelectionList的选中项文本 */ SelectionList > .selection-list-item:selected .selection-list-item__label { color: #ff4500; /* 替换成你想要的颜色,这里是橙红色示例 */ } /* 只针对id为mylist的SelectionList(更精准) */ #mylist > .selection-list-item:selected .selection-list-item__label { color: #2ecc71; /* 这里是绿色示例 */ }
给你拆解下这段TCSS的逻辑:
SelectionList是组件类型选择器,用来定位所有SelectionList组件;#mylist则是通过你设置的id精准定位特定组件.selection-list-item是每个选项的容器元素类名:selected是状态伪类,专门匹配处于选中状态的选项.selection-list-item__label就是选项里负责显示文本的元素类名
把这些组合起来,就能准确选中所有选中项的文本,然后自定义它的颜色啦!
备注:内容来源于stack exchange,提问作者Robin Macharg
相关产品推荐
相关产品推荐

