Как установить фоновое изображение в Kivy? (Изображение продолжает покрывать все остальные кнопки и объекты) - PullRequest
0 голосов
/ 30 марта 2019

Я новичок в Kivy и пытаюсь создать простой графический интерфейс для небольшого проекта.Однако мне показалось странным, как добавить фоновое изображение, и я провел дни, просматривая документацию Kivy, а также учебные пособия и форумы, пытаясь найти решение, но по какой-то причине нет четких инструкций о том, как это сделать.Мне действительно нужна твоя помощь.Инструкции здесь совсем не помогли, так как документы Kivy были о том, чтобы добавить цвет фона и нарисовать поверх него картинку.Это не то, что мне нужно, мне нужно добавить фоновую картинку для всех кнопок и объектов.Я не знаю, как отправить фоновое изображение назад, оно продолжает всплывать над всем.Я надеюсь, что вы можете помочь мне.

Вот мой код:

# -*- coding: cp1252 -*-
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.image import Image
from kivy.animation import Animation
from kivy.uix.label import Label
from kivy.uix.widget import Widget
from kivy.clock import Clock
from kivy.graphics import Color, Rectangle
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.floatlayout import FloatLayout

# Create both screens. Please note the root.manager.current: this is how
# you can control the ScreenManager from kv. Each screen has by default a
# property manager that gives you the instance of the ScreenManager used.
Builder.load_string("""
<MenuScreen>:
    FloatLayout:
        Button:
            text: "LEARN"
            font_name: 'DK Lemon Yellow Sun.otf'
            font_size: '50sp'
            pos: 60, 180
            size_hint: .4, .4
        Button:
            text: "TRANSLATE"
            font_name: 'DK Lemon Yellow Sun.otf'
            font_size: '50sp'
            pos: 410, 180
            size_hint: .4, .4
        Button:
            text: "QUIT"
            font_size: '50sp'
            font_name: 'DK Lemon Yellow Sun.otf'
            pos: 60, 50
            size_hint: .1, .1
        Label:
            text: 'Education App'
            pos: -10, 200
            font_size: '70sp'
            font_name: 'DK Lemon Yellow Sun.otf'
        AsyncImage:
            source: 'blackboard.png'
            size_hint: 1, .7
            pos_hint: {'center_x':.5, 'center_y': .5}



<SettingsScreen>:
    BoxLayout:
        Button:
            text: 'My settings button'
        Button:
            text: 'Back to menu'
            on_press: root.manager.current = 'menu'
""")




class MenuScreen(Screen):
    pass


class SettingsScreen(Screen):
    pass


sm = ScreenManager(transition=FadeTransition())
sm.add_widget(MenuScreen(name='menu'))
sm.add_widget(SettingsScreen(name='settings'))



class TestApp(App):
    def build(self):
        return sm

if __name__ == '__main__':
    TestApp().run()

Полученный результат в формате kivy выглядит следующим образом:

enter image description here

Вся помощь будет оценена.Спасибо.Большое спасибо.

1 Ответ

0 голосов
/ 30 марта 2019

Добавьте это после вашего <MenuScreen>: тега:

canvas.before:
        Rectangle:
            pos: self.pos
            size: self.size
            source: 'yourImage.png'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...