How do I set the screen background to image in kivy

与世无争的帅哥 提交于 2021-02-11 14:27:04

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!