【问题标题】:How do I set the screen background to image in kivy如何在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()

【问题讨论】:

    标签: python kivy


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 1970-01-01
      • 2014-05-18
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2021-05-18
      相关资源
      最近更新 更多