sup*_*eme 5 canvas kivy kivy-language
我有一个带有画布和图像的堆栈布局。我的图像的 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
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能达到预期的效果?
Kivy 画布不是小部件或您绘画的空间。它只是一组指令。你不能调整它的大小。我猜您想调整绘制的矩形的大小。我不确定您期望的结果是什么,但是您可以使用父小部件的width
和height
属性调整矩形的大小:
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()
Run Code Online (Sandbox Code Playgroud)
结果: