簡體   English   中英

如何更改 kivy 中的背景顏色?

[英]How to change background color in kivy?

本人剛開始學習kivy,如有荒唐之處請多多包涵。

這里只是從官方網站復制粘貼代碼。

import kivy
from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
   def build(self):
      return Label(text='Hello world',)

if __name__ == '__main__':
    MyApp().run()

output 在鏈接中。

我本質上想知道如何將背景(當前為黑色)更改為其他顏色。

我已經閱讀了文檔的某些部分,找到了用於更改小部件顏色但屏幕顏色的文檔(可能不是准確的詞)。

我真的很感激你的意見和建議。

提前致謝。

您可以使用canvasLabel來繪制這樣的背景顏色:

import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.label import Label

class MyLabel(Label):
    pass

Builder.load_string('''
<MyLabel>:
    canvas.before:
        Color:
            rgba: 1,0,0,1
        Rectangle:
            pos: self.pos
            size: self.size
''')

class MyApp(App):
   def build(self):
      return MyLabel(text='Hello world',)

if __name__ == '__main__':
    MyApp().run()

在不使用kv語言的情況下執行此操作更加復雜,因為您必須設置kv語言自動為您完成的possize的綁定。 這是不使用kv的等價物:

from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.label import Label

class MyLabel(Label):
    def __init__(self, **kwargs):
        super(MyLabel, self).__init__(**kwargs)
        with self.canvas.before:
            Color(1, 0, 0, 1)
            self.rect = Rectangle(pos=self.pos, size=self.size)

    def on_pos(self, *args):
        self.rect.pos = self.pos

    def on_size(self, *args):
        self.rect.size = self.size

        
class MyApp(App):
    def build(self):
        return MyLabel(text='Hello world',)

if __name__ == '__main__':
    MyApp().run()

有關canvas的更多信息,請參閱文檔

暫無
暫無

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

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