问题
How do I change the background to image in this code am not using any .Kv file. I want to set the screen background to an image but am only seeing the ones with .kv file
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:
It's easier to do in kv
, but you can do it without kv
by adding this code to the __init__()
method of LandingScreen
:
with self.canvas.before:
self.bg = Rectangle(pos=self.pos, size=self.size, source='background.png')
And you will also need to adjust the size of the background when the size of LandingScreen
changes. To do this add this method to LandingScreen
:
def on_size(self, *args):
self.bg.size = self.size
来源:https://stackoverflow.com/questions/62774766/how-do-i-set-the-screen-background-to-image-in-kivy