1

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

第一个答案后的版本:

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

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

4

1 回答 1

0

我在 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 背景,即黑色

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

当您使用具有图像作为背景的小部件时,更改背景颜色只会使用作背景的图像(即那个图像)着色atlas。有你的问题,因为你可能想要一个清晰的颜色或使用TabbedPanelHeader-blue(有色的)。两个例子:

在这里你有着色的蓝色(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文件,但没有打开它们。您将数据库发布给您肯定不知道如何处理它的人的事情是不好的。更糟糕的是,您甚至公开发布了它。假设您在该数据库中有个人数据、银行帐号或其他任何东西——您不想为丢失或滥用它们负责,是吗?

于 2016-05-07T19:48:46.643 回答