簡體   English   中英

在Kivy中更改顏色TabbedPannelHeader

[英]Changing color TabbedPannelHeader in Kivy

我嘗試了許多不同的方法,但是沒有辦法解決這個問題。 當我更改按鈕的顏色時,對於(0,0,1,1)我有藍色。 如果對TabbedPannel使用相同的列表,則顯示為深藍色,對於(0,0,1,0),則顯示為白色。 就像我有黑色背景,並且我總是將其與其他任何顏色混合使用,但是我無法獲得特定的顏色。 Spinner也會發生這種情況,但Label或Button不會發生。 我該怎么辦? 我嘗試使用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))

我在Windows上,所以默認背景是black afaik, 但也許在其他OS上有不同的背景

在您的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本身沒有圖像作為背景,因此,使用變量或畫布指令更改其背景顏色會產生清晰的顏色。 在諸如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文件,但沒有打開它們。 您將數據庫發布給某個您肯定不知道該怎么做的人的做法是不好的。 更糟糕的是,您公開發布了它。 假設您在該數據庫中擁有個人數據,銀行帳號或其他內容-您不想對丟失或濫用它們負責,對嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM