簡體   English   中英

Kivy:如何在運行時更改小部件的背景顏色?

[英]Kivy: How to change a widget's background color at runtime?

我想創建包含不同列窗口小部件的小部件行,其中一些是textLabel。 我想要做的是能夠在運行時更改行的背景顏色。 為此,我使用水平框布局作為行。 是否可以在運行時更改此布局的背景顏色?

我發現的所有解決方案都是在創建時更改背景顏色,但在運行時不起作用。

kivy.uix.boxlayout.BoxLayout(orientation="horizontal", size_hint_y=None)

這是我目前正在使用的小部件,但我願意為此使用其他類型的小部件。

布局中的一些小部件阻止了布局的背景,那些不必改變顏色,但無論如何都無關緊要,我有興趣至少從一行更改所有textLabels中的背景。

你提到textLabel (我假設你的意思是Label )。 您可以通過定義自定義Label輕松修改Label的背景顏色,我們將其稱為MyLabel

class MyLabel(Label):
    rgba = ListProperty([0.5, 0.5, 0.5, 1]) # will be used as background color

這定義了MyLabelrgba屬性,可以在kv文件中引用為:

<MyLabel>:
    canvas.before:
        Color:
            rgba: self.rgba
        Rectangle:
            pos: self.pos
            size: self.size

然后可以使用以下命令更改MyLabel實例(稱為mylab )的背景顏色:

mylab.rgba = [1, 0, 0, 1] # or any other rgba

如果要更改一行MyLabel小部件的背景顏色,只需在循環中執行上述操作即可。

暫無
暫無

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

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