如何在kivy中将屏幕背景设置为图像
Posted
技术标签:
【中文标题】如何在kivy中将屏幕背景设置为图像【英文标题】:How do I set the screen background to image in kivy 【发布时间】:2020-10-27 16:21:54 【问题描述】:如何在此代码中将背景更改为图像而不使用任何 .Kv 文件。我想将屏幕背景设置为图像,但只看到带有 .kv 文件的图像
import kivy
from kivy.app import App
from kivy.uix.floatlayout import Floatlayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.label import Label
class LandingScreen(FloatLayout):
def __init__(self, **kwargs):
super(LandingScreen, self).__init__(**kwargs)
self.score=0
# put whatever pos_hint value you want.
self.add_widget(Label(text='SCORE: ' + str(score), size_hint=(0.5, 0.5)))
self.btn1=Button(text='button1 ', size_hint=(0.5, 0.5),
on_press=self.click_b1))
self.btn2=Button(text='button2', size_hint=(0.5, 0.5),
on_press=self.click_b2))
self.add_widget(self.btn1)
self.add_widget(self.btn2)
def click_b1(self, instance):
score +=10
def click_b2(self, instance):
score += 10
class SplashApp(App):
def build(self):
return LandingScreen()
if __name__ == '__main__':
SplashApp().run()
【问题讨论】:
【参考方案1】:在kv
中更容易做到,但是你可以在没有kv
的情况下做到这一点,只需将此代码添加到LandingScreen
的__init__()
方法中即可:
with self.canvas.before:
self.bg = Rectangle(pos=self.pos, size=self.size, source='background.png')
当LandingScreen
的大小发生变化时,您还需要调整背景的大小。为此,请将此方法添加到 LandingScreen
:
def on_size(self, *args):
self.bg.size = self.size
【讨论】:
以上是关于如何在kivy中将屏幕背景设置为图像的主要内容,如果未能解决你的问题,请参考以下文章