2015-10-28 5 views
1

Я просто начать программирование Kivy и есть проблемы с пониманием делать раскладку:Почему мой RectangleWidget не весь экран

import kivy 
kivy.require('1.9.0') 
from kivy.app import App 
from kivy.uix.floatlayout import FloatLayout 
from kivy.core.window import Window 
from kivy.uix.widget import Widget 
from kivy.graphics import Rectangle, Color 

class CornerRectangleWidget(Widget): 
    def __init__(self, **kwargs): 
     super(CornerRectangleWidget, self).__init__(**kwargs) 
     with self.canvas: 
      Color(1, 0, 1, 1) 
      self.rect = Rectangle(size_hint=(1,None),height=48) 

class ControllerApp(App): 
    def build(self): 
     Window.clearcolor = (1, 0, 0, 1) 
     root = FloatLayout(size_hint=(1,1)) 
     root.add_widget(CornerRectangleWidget()) 
     return root 

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

Почему мой CornerRectangleWidget держать так мало. Я хотел иметь FloatLayout с Fullscreen и CornerRectangleWidget тоже.

На самом деле, я хочу построить виджет «CornerRectangleWidget» на плавающей панели инструментов с x dimensins корневого виджета «FloatLayout size_hint = (1, None)»! Как это сделать?

ответ

0

Прямоугольник не имеет size_hint, вам нужно установить pos и размер.

Вам также необходимо привязать функцию к обновлению своего положения при изменении положения виджета, так как во время __init__ он будет иметь по умолчанию (0, 0) и размер (100, 100). Это описано here.

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