#python #kivy
#python #kivy
Вопрос:
У меня небольшая проблема с позиционированием холста в kivy. Я хочу использовать размер экрана, чтобы один прямоугольник оказался в правом верхнем углу экрана, а другой — в (0, 0), но y экрана при рисовании прямоугольников по какой-то причине равен 100, хотя это, очевидно, не так. Вот код, так вам будет легче понять. Пожалуйста, скажите мне, чего мне не хватает? И, конечно, если у вас есть какие-то вопросы, пожалуйста, задавайте.
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Rectangle
class GameWidget(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
with self.canvas:
print(self.size[1])
self.rect = Rectangle(pos=(0, 0), size=(150, 150))
self.rect2 = Rectangle(pos=self.size, size=(150, 150))
class MyApp(App):
def build(self):
return GameWidget()
if __name__ == "__main__":
app = MyApp()
app.run()
Комментарии:
1. Вы рисуете свои прямоугольники на основе self.size в момент создания экземпляра, который на данный момент равен (100, 100). Вам нужно привязать функцию к событию изменения размера GameWidget и в обратном вызове обновить позиции прямоугольника.
2. вы должны прослушать изменение размера … или просто использовать виджет пропорционального размера…
3. Спасибо за вашу помощь. Не могли бы вы опубликовать какой-нибудь код? Я понял это частично, но не полностью. Еще раз спасибо.
4. @inclument есть ли способ нарисовать эти прямоугольники, когда окно полностью загружено? Или не могли бы вы уточнить решение с помощью события изменения размера?
5. inclem.net/2019/12/18/kivy/kivy_tutorial_005_a_drawing_app