为什么我的RectangleWidget不是全屏

时间:2015-10-28 11:02:12

标签: python kivy

我刚刚开始Kivy编程并且对执行布局有一个问题:

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保持这么小。我想要一个带Fullscreen的FloatLayout和CornerRectangleWidget。

实际上我想将Widget“CornerRectangleWidget”构建到一个浮动的顶部工具栏,其中包含根Widget的“x dimensins”“FloatLayout size_hint =(1,None)”!怎么做?

1 个答案:

答案 0 :(得分:0)

矩形没有size_hint,你需要设置一个位置和大小。

当小部件位置发生变化时,您还需要绑定到函数以更新其位置,因为在__init__期间它将具有默认的pos(0,0)和大小(100) ,100)。这被描述为here