Kivy-如何使我的画布高度小于父高度

时间:2017-06-20 16:23:47

标签: canvas kivy kivy-language

我有一个带有画布和图像的stacklayout。我的图片的size_hint为.1,我希望我的画布与我的图像具有相同的高度。

.kv文件:

StackLayout:
    orientation: 'lr-tb'
    canvas:
        Color:
            rgba: 1,1,1,1
        Rectangle:
            pos: self.pos
            size: self.size
    Image:              
        size_hint_y: .1
        source: 'Images\login\cptbanner.jpg'
        allow_stretch: True
        keep_ratio: True

我该怎么做才能获得理想的效果?

1 个答案:

答案 0 :(得分:2)

Kivy画布不是小部件或您绘制的空间。它只是一组指令。你不能调整它的大小。我想你想要调整绘制的矩形的大小。我不确定您期望的结果是什么,但您可以使用父窗口小部件的widthheight属性调整矩形的大小:

from kivy.app import App
from kivy.base import Builder
from kivy.uix.boxlayout import BoxLayout


Builder.load_string("""
<MainWindow>:
    StackLayout:
        id : aa
        orientation: 'lr-tb'

        canvas:
            Color:
                rgba: 1,1,1,1
            Rectangle:
                pos: 0, self.height*0.9
                size: self.width, self.height*0.1

        Image:
            id: im
            size_hint_y: 0.1
            source: 'Images\login\cptbanner.jpg'
            allow_stretch: True
            keep_ratio: True
""")

class MainWindow(BoxLayout):
    def __init__(self, **kwargs):
        super(MainWindow, self).__init__(**kwargs)

class MyApp(App):
    def build(self):
        return MainWindow()

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

<强>结果:

enter image description here