Изображения не масштабируются при повторном позиционировании окна в Kivy - PullRequest
0 голосов
/ 14 апреля 2020

Проблема довольно проста для объяснения, но даже при просмотре учебников ответ кажется мне не таким ясным. Когда я изменял размер окна, я надеялся, что кнопка будет сама позиционироваться на основе окна

Здесь вы можете видеть, что изображение не перемещается на основе окна

<MainMenu>
    name: 'Gotta catch em all'
    #Createing canvas
    canvas.before:
        Rectangle:
            pos: self.pos
            size: self.size
            source: 'backgroundImagees.jpeg'
    RelativeLayout:

        Button:
            background_normal: 'bitterling.png'
            size_hint:2,2
            #pos_hint:{"left":1,"top":7.5}
            pos_hint:{"x":.1,"y":5.8}

а вот другой файл

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.uix.image import Image
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle,Color
from kivy.uix.floatlayout import FloatLayout
from kivy.config import Config
Config.set('graphics','resizable',True)

kivy.require('1.11.1')

class MainMenu(Widget):
    pass

class AnimalCrossingApp(App):
    def build(self):

        return MainMenu()

AnimalCrossingApp().run()

1 Ответ

0 голосов
/ 14 апреля 2020

Ну, это так ..
Ваша проблема в том, что свойства hint виджета используются от его родителя для позиционирования этого виджета внутри родителя, но только если родительский объект является Layout.
В вашем случае он позиционирует Button внутри RelativeLayout, но RelativeLayout не обрабатывается его родителем (который является просто Widget, а не Layout), и, как следствие, внизу слева.

Простое решение - использовать FloatLayout:

class MainMenu(FloatLayout):

и расположить каждого ребенка с подсказками.

...