我有一个带有画布和图像的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
我该怎么做才能获得理想的效果?
答案 0 :(得分:2)
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()
<强>结果:强>