在 Kivy 中更改颜色 TabbedPannelHeader

Changing color TabbedPannelHeader in Kivy

我尝试了很多不同的方法,但都没有解决这个问题。 当我更改按钮的颜色时,对于 (0,0,1,1) 我有蓝色。如果我对 TabbedPannel 使用相同的列表,我有深蓝色,对于 (0, 0, 1, 0) 我有白色。就像我有一个黑色背景,我总是混合它和任何其他颜色,但我无法获得特定颜色。这也发生在 Spinner 上,但不会发生在 Labels 或 Buttons 上。我应该怎么办?我尝试使用 default_tab_cls,但是,正如我想象的那样,它只是更改了默认选项卡。

第一个答案后的版本:

这是我遇到问题的部分。我调用一个 returns 我的 TabbedPanelHeader 的函数。 this.font_padrao 一切正常,是一种自定义字体,而且效果很好。这个例子returns我是白色背景和蓝色字体。例如,如果我将 background_color 更改为 (0,0,1,1),则蓝色不同于我在 Button 中执行相同操作时的蓝色。在那里,蓝色是 "real blue",而不是 "dark blue" 或类似的东西。

return TabbedPanelHeader(text=nome, background_color = (0, 0, 1, 0), font_name=fonte_padrao, color = (0,0,1,1))

我在 windows,所以默认背景是黑色 afaik,但可能在其他操作系统上有不同的背景

在你的 main.py:

from functools import partial
import rotinas
Window.clearcolor = (1, 1, 1, 1) <-----
import sqlite3 as sql
from datetime import *

如果您在着色中使用 alpha==0,那么这就是您的白色。删除该行,您将拥有默认的 Kivy 背景,即 black.

接下来,Label 本身没有图像作为背景,因此使用变量或 canvas 指令更改其背景颜色会产生清晰的颜色。在诸如 Spinner 之类的小部件或基本上任何与透明颜色不同的小部件中,最有可能使用来自 atlas 的图像作为背景(设置来自 canvas 的东西比更改 png 效率低 - 至少更多代码行)。

当您使用以图像作为背景的小部件时,更改背景颜色只会对用作背景的图像进行着色,即 atlas 图像。这是您的问题,因为您可能想要清晰的颜色或使用 TabbedPanelHeader-蓝色(有色)。两个例子:

这里是淡蓝色(background_normal不是必须的,kivy默认是这样设置的)

from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
<Test>:
    TabbedPanelHeader
        color: (0,0,1,1)
        text:'blaaaaaaa'
        background_color: (0, 0, 1, 1)
        background_normal: 'atlas://data/images/defaulttheme/tab_btn'
''')
class Test(BoxLayout):pass
runTouchApp(Test())

这里是标准的、清晰的颜色(见空白background_normal):

from kivy.lang import Builder
from kivy.base import runTouchApp
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
<Test>:
    TabbedPanelHeader
        color: (0,0,1,1)
        text:'blaaaaaaa'
        background_color: (0, 0, 1, 1)
        background_normal: ''
''')
class Test(BoxLayout):pass
runTouchApp(Test())

PS: 使用pep8 或自己安装一个(pip install pep8) 并使您的代码更具可读性。相信我,一年后您将遇到 很多 调试问题。它可能工作得很好,但你扼杀了 python 可读性的全部意义。

我还在你的 zip 中看到了一些 .db 文件,但没有打开它们。您将数据库发布给您肯定不知道将如何处理它的人的事情是不好的。更糟糕的是你公开发布了它。假设您在该数据库中有个人数据、银行帐号或其他任何东西 - 您不想为丢失或滥用它们负责,是吗?