Kivy-椭圆小部件中的中心图像

Kivy-椭圆小部件中的中心图像,kivy,kivy-language,Kivy,Kivy Language,如何使图像始终位于椭圆小部件的中心 下面是.py和.kv文件以及执行代码的结果屏幕 我已经尝试了很多方法,但我做不到。有人能帮我解决这个问题吗 晶圆厂 fab.kv 所以,很难做到这一点的一个原因是,您没有使用特定的小部件来保存您的形状。我真的建议您这样做,因为这样您就可以使用小部件的center_x和center_y属性。因此,让小部件具有与您想要的形状相同的大小和位置,然后只需移动小部件本身即可。注意: Widget: Widget: # create a specific widg

如何使图像始终位于椭圆小部件的中心

下面是.py和.kv文件以及执行代码的结果屏幕

我已经尝试了很多方法,但我做不到。有人能帮我解决这个问题吗

晶圆厂

fab.kv


所以,很难做到这一点的一个原因是,您没有使用特定的小部件来保存您的形状。我真的建议您这样做,因为这样您就可以使用小部件的center_x和center_y属性。因此,让小部件具有与您想要的形状相同的大小和位置,然后只需移动小部件本身即可。注意:

Widget:
    Widget: # create a specific widget for the ellipse
        id: ellipse # give an id so we can refer to this widget
        size: (dp(48), dp(48))
        canvas:
            Color:
                rgba: 0, 1, 0, 1
            Ellipse:
            pos: self.pos
            size: self.size

    Scatter:
        size: (dp(48), dp(48))
        rotation: 45
        center_x: ellipse.center_x # refer to the ellipse
        center_y: ellipse.center_y
        Image:
            source: 'plus.png'

如果你真的需要你的图像旋转,这不是最好的主意,使用分散-你可以拖动加号远离椭圆,例如。对不起,我忽略了一个事实。请看代码,现在有点不同了。
Widget:
    canvas:
        Color:
            rgba: 0, 1, 0, 1
        Ellipse:
            pos: self.pos
            size: (dp(48), dp(48))
    Scatter:
        rotation: 45
        Image:
            source: 'plus.png'
            size: 64,64
Widget:
    Widget: # create a specific widget for the ellipse
        id: ellipse # give an id so we can refer to this widget
        size: (dp(48), dp(48))
        canvas:
            Color:
                rgba: 0, 1, 0, 1
            Ellipse:
            pos: self.pos
            size: self.size

    Scatter:
        size: (dp(48), dp(48))
        rotation: 45
        center_x: ellipse.center_x # refer to the ellipse
        center_y: ellipse.center_y
        Image:
            source: 'plus.png'