3

我想更改 MDToolbar left_action_item 图标颜色。它默认为白色,但现在我想将其更改为红色。最简单的方法是什么?我几乎尝试了所有东西(text_color、bg_color 等),但都无济于事。

4

4 回答 4

1

在这种情况下,我建议在KivyMD 存储库中搜索相关的小部件类,然后四处寻找它是如何定义的,相关的 ID 是什么等等。例如,toolbar.py中的这一行似乎定义了工具栏中的图标:

def update_action_bar(self, action_bar, action_bar_items):
    #...
    action_bar.add_widget(
        MDIconButton(
            icon=item[0],
            on_release=item[1],
            opposite_colors=True,
            text_color=self.specific_text_color,
            theme_text_color="Custom",
        )
    )
    #...

在这里,我们了解到工具栏的图标属于 class MDIconButton,它们有一个text_colorcolor 属性,似乎是在设置颜色。

查看上述函数的调用位置,我们看到这些图标分别作为小部件添加到self.ids["left_actions"]self.ids["right_actions"]

def on_left_action_items(self, instance, value):
    self.update_action_bar(self.ids["left_actions"], value)

def on_right_action_items(self, instance, value):
    self.update_action_bar(self.ids["right_actions"], value)

知道了这一切,现在在我们自己的代码中,比如在我们的build()函数中MainApp,我们可以访问和修改属性:

def build(self):
    # ... 
        
    # get the root widget
    self.root = root = Builder.load_file('root.kv')

    # get toolbar
    toolbar=root.ids.toolbar
    
    # get the icons on the right
    action_items = toolbar.ids.right_actions.children

    # loop over the icons
    for item in action_items:
        # change the color
        item.text_color=(1,0,0,1) # red

这不需要在 build() 中,它只需要在某个地方,您可以通过它的 ID 以某种方式访问​​工具栏小部件。

于 2020-09-30T13:00:44.177 回答
1

您无法更改工具栏中图标的颜色。

于 2020-08-03T08:06:51.887 回答
0

同时使用md_bg_color: app.theme_cls.primary_colortext_color: rgba('#F0F0F0')允许我更改 MDToolbar 中图标按钮的颜色。

于 2021-07-27T15:06:01.640 回答
0

使用specific_text_color: 1,0,1,1您可以更改工具栏中文本的颜色。它同时更改了文本和图标。我不知道如何只更改图标。也许这有帮助。

目前我无法更改OneLineIconListItem. 我认为它与我们遇到的约束相同?

于 2020-08-22T09:50:48.747 回答