改变Kivy中的颜色TabbedPannelHeader

时间:2016-05-07 16:56:48

标签: android python kivy kivy-language

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

第一个回答后的版本:

这是我遇到问题的部分。我调用一个返回TabbedPanelHeader的函数。这一切都没关系.font_padrao是一个自定义字体,这很好用。此示例返回白色背景和蓝色字体。如果我将background_color更改为(0,0,1,1),那么当我执行相同的操作时,蓝色与我所拥有的蓝色不同。在那里,蓝色是“真正的蓝色”,而不是“深蓝色”或类似的东西。

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

1 个答案:

答案 0 :(得分:0)

我在Windows上,所以默认背景为黑色,但也许在其他操作系统上有不同的

main.py

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

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

接下来,Label本身没有图像作为背景,因此使用变量或画布指示更改其背景颜色会产生清晰的颜色。在诸如Spinner之类的小部件中,或者基本上任何颜色都不同于透明的东西,很可能使用来自atlas的图像作为背景(从画布设置内容比改变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个文件,但是没有打开它们。你把你的数据库发布给某个你肯定不知道怎么做的东西很糟糕。更糟糕的是,你公开发布它。让我们假设您在该数据库中拥有个人数据,银行帐号或其他任何内容 - 您不想对丢失或滥用它们负责,是吗?