Kivy RecycleBoxLayout更改字体颜色

时间:2020-07-31 23:27:43

标签: python kivy

我一直无法找到一种方法来更改kivy recyclebox的字体颜色。如何更改标签属性?下面是我的代码。

Python方面:

class ExampleViewer(RecycleView): 
    def __init__(self, **kwargs): 
        super(ExampleViewer, self).__init__(**kwargs) 
        self.data = [{'text': f"[color=[0,0,0,1]]{x}[/color]"} for x in range(20)]

Kivy Side:

ExampleViewer: 
    viewclass: 'Label'  # defines the viewtype for the data items. 
    orientation: "vertical"
  
    RecycleBoxLayout: 
        color: (0, 0, 0, 1)
        default_size: None, dp(56)
        markup: True 
  
        # defines the size of the widget in reference to width and height 
        default_size_hint: 1, None 
        size_hint_y: None
        height: self.minimum_height 
        orientation: 'vertical'

我尝试为标签创建标记并直接更改颜色。两种方法都不适合我。有办法改变吗?

1 个答案:

答案 0 :(得分:0)

在“标签”窗口小部件中更改文本颜色的方法是指定装饰物颜色

摘要

self.data = [{'text': str(x), 'color': [1, 0, 1, 1]} for x in range(20)]

示例

main.py

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.recycleview import RecycleView

Builder.load_string('''
<RV>:
    viewclass: 'Label'
    RecycleBoxLayout:
        default_size: None, dp(56)
        default_size_hint: 1, None
        size_hint_y: None
        height: self.minimum_height
        orientation: 'vertical'
''')


class RV(RecycleView):
    def __init__(self, **kwargs):
        super(RV, self).__init__(**kwargs)
        self.data = [{'text': str(x), 'color': [1, 0, 1, 1]} for x in range(100)]


class TestApp(App):
    def build(self):
        return RV()


if __name__ == '__main__':
    TestApp().run()

输出

RecycleView - Label's text is pink colour