2015-12-29 3 views
1

У меня возникли проблемы с форматированием этих эллипсов, чтобы они отображались в центре экрана. Я пробовал все, что мог придумать, чтобы воспользоваться. Кнопка, которую я написал на языке Kivy, идет в угол монитора, как будто это значит, но все в классе Target отказывается подчиняться моему форматированию и рисуется в левом нижнем углу экрана независимо от того, что.Kivy (Python) Проблемы с форматированием

class Target(Label): 
    def __init__(self, **kwargs): 
     super(Target, self).__init__(**kwargs) 
     with self.canvas: 
      Color(1,1,1) 
      d = 400 
      Ellipse(pos=((self.center_x - d/2), (self.center_y - d/2)), size=(d,d)) 

      Color(0,0,0) 
      d = 320 
      Ellipse(pos=((self.center_x - d/2), (self.center_y - d/2)), size=(d,d)) 

      Color(0,0,1) 
      d = 240 
      Ellipse(pos=((self.center_x - d/2), (self.center_y - d/2)), size=(d,d)) 

      Color(1,0,0) 
      d = 160 
      Ellipse(pos=((self.center_x - d/2), (self.center_y - d/2)), size=(d,d)) 

      Color(1,1,0) 
      d = 80 
      Ellipse(pos=((self.center_x - d/2), (self.center_y - d/2)), size=(d,d)) 

Это все необработанный код python, относящийся к рисованию кругов на виджетах. Вот код Kivy, который касается экрана.

<ScoringLayout>: 
    FloatLayout: 
     Target: 
      center: self.parent.center 
      size_hint: 0.2, 0.3 

     Button: 
      text: "Return" 
      on_release: app.root.current = "main" 
      font_size: 15 
      size_hint: 0.3 ,0.2 
      pos_hint: {"right": 1, "bottom": 1} 

Scoring Макет макет для экрана, который переключен, кнопки под разбитым кодом ссылки обратно на главный экран приложения.

Я также должен сказать, что цель состоит в том, чтобы это было упаковано как приложение для Android вместе с остальной частью моего кода.

ответ

1

Эллипсы рисуются в соответствии с self.center_x в тот момент, когда запущен __init__, после чего он по-прежнему является значением по умолчанию (50, 50).

Вы можете исправить это с помощью языка kv или вручную создать привязку к функции, которая обновляет эллипс pos и размер при изменении размера или размера виджета.

Смежные вопросы