我尝试了很多不同的方法,但没有解决这个问题。 当我改变按钮的颜色时,对于(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))
答案 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
个文件,但是没有打开它们。你把你的数据库发布给某个你肯定不知道怎么做的东西很糟糕。更糟糕的是,你公开发布它。让我们假设您在该数据库中拥有个人数据,银行帐号或其他任何内容 - 您不想对丢失或滥用它们负责,是吗?