Kivy:如何使小部件的行为类似于overflow:hidden

7

我想在Kivy中创建一个GridLayout,其中包含许多带有自定义图像的矩形按钮,这些图像大小不同。为此,我想要缩放图像(我的操作方法如下),然后裁剪/隐藏超出小部件边界的部分。调整大小效果良好,但我无法弄清楚如何隐藏/裁剪矩形外部的部分。例如:如果小部件具有10px x 10px的尺寸,而我的图像为100px x 200px,则将其调整为10px x 20px并在小部件中心对齐,但上下各5px将可见。我不想这样。:) 能否有人帮助我解决这个问题?

class PlaceIcon(Widget):
    def __init__(self,image_path, **kwargs):
        super(PlaceIcon, self).__init__(**kwargs)
        self.bind(size=self.adjust_size)
        self.image = Image(source=image_path)
        self.image_path = image_path  

    def adjust_size(self,*args):
        (a,b) = self.image.texture.size
        (x,y) = self.size
        (x1,y1) = self.pos
        if x > y:
            scale = x/a
        else:
            scale = y/b
        x1 -= (scale*a-x)/2
        y1 -= (scale*b-y)/2
        with self.canvas:
            self.canvas.clear()
            self.background = Rectangle(texture=self.image.texture, pos=(x1,y1), size=(scale*a,scale*b))
1个回答

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接