【问题标题】:Image not working in Kivy图像在 Kivy 中不起作用
【发布时间】:2017-04-30 02:36:35
【问题描述】:

我用 Kivy 编写了一个程序,它显示一个主菜单屏幕,当按下播放按钮时,它会设置一个背景图像。代码设置为在按下按钮时打印,但它没有设置背景图像。我也没有收到任何错误。

这里是主菜单: Main Menu

这里是 Python 代码:

import kivy
kivy.require("1.9.1")

from kivy.uix.boxlayout import BoxLayout
from kivy.app           import App
from kivy.uix.label     import Label
from kivy.uix.button    import Button
from kivy.uix.image     import Image

def AddBackground():
    print("Image Added")
    return Image(source = "Background.jpg")

class MyLayout(BoxLayout):

    def PlayPressed(self):
        print("Play Button Pressed")
        AddBackground()

    def LeaderPressed(self):
        print("Leader Boards Button Pressed")

    def CreditsPressed(self):
        print("Credits Button Pressed")

    def SettingsPressed(self):
        print("Settings Button Pressed")

class MainMenuApp(App):

    def build(self):
        return MyLayout()


if __name__ == "__main__":
    MainMenuApp().run()

这是 Kivy 代码(应该不是必需的):

<MyLayout>:
    orientation: "vertical"
    spacing: 20
    padding: 60, 40

    Label:
        font_name: "TitleFont.ttf"
        font_size: "60sp"
        text: "Title"
        size_hint: 1, 2
    Button:
        background_down: "Blue.jpg"
        background_normal: "Red.jpg"
        font_name: "TitleFont.ttf"
        font_size: "30sp"
        text: "Play"
        on_release: root.PlayPressed()
    Button:
        background_down: "Blue.jpg"
        background_normal: "Red.jpg"
        font_name: "TitleFont.ttf"
        font_size: "30sp"
        text: "LeaderBoards"
        on_release: root.LeaderPressed()

    Button:
        background_down: "Blue.jpg"
        background_normal: "Red.jpg"
        font_name: "TitleFont.ttf"
        font_size: "30sp"
        text: "Credits"
        on_release: root.CreditsPressed()
    Button:
        background_down: "Blue.jpg"
        background_normal: "Red.jpg"
        font_name: "TitleFont.ttf"
        font_size: "30sp"
        text: "Settings"
        on_release: root.SettingsPressed()

我必须做什么才能使背景出现?

【问题讨论】:

    标签: android python python-3.x kivy kivy-language


    【解决方案1】:

    您还没有将图像添加到任何东西,试试这个来改变当前的屏幕背景:

     background_image = StringProperty("default.png")
     ...
     def PlayPressed(self):
        print("Play Button Pressed")
        self.background_image = "Background.jpg"
    

    在kv文件中:

    <MyLayout>:
    
        background_image: "default.png"
        canvas.before:
            Rectangle:
                pos: self.pos
                size: self.size
            Image:
                source: self.background_image
    

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多