ScaleWidget

New in version 1.0.0.

Base class for controlling the scale of the widget.

Note

See kivy.graphics.Scale for more information.

Kivy

from typing import NoReturn

from kivy.animation import Animation
from kivy.lang import Builder
from kivy.properties import NumericProperty
from kivy.uix.button import Button
from kivy.app import App


KV = '''
Screen:

    ScaleButton:
        size_hint: .5, .5
        pos_hint: {"center_x": .5, "center_y": .5}
        on_release: app.change_scale(self)

        canvas.before:
            PushMatrix
            Scale:
                x: self.scale_value_x
                y: self.scale_value_y
                z: self.scale_value_x
                origin: self.center
        canvas.after:
            PopMatrix
'''


class ScaleButton(Button):
    scale_value_x = NumericProperty(1)
    scale_value_y = NumericProperty(1)
    scale_value_z = NumericProperty(1)


class Test(App):
    def build(self):
        return Builder.load_string(KV)

    def change_scale(self, instance_button: Button) -> NoReturn:
        Animation(
            scale_value_x=0.5,
            scale_value_y=0.5,
            scale_value_z=0.5,
            d=0.3,
        ).start(instance_button)


Test().run()

KivyMD

from typing import NoReturn

from kivy.animation import Animation
from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.button import MDRaisedButton
from kivymd.uix.templates import ScaleWidget

KV = '''
MDScreen:

    ScaleButton:
        size_hint: .5, .5
        pos_hint: {"center_x": .5, "center_y": .5}
        on_release: app.change_scale(self)
        elevation:0
'''


class ScaleButton(MDRaisedButton, ScaleWidget):
    pass


class Test(MDApp):
    def build(self):
        return Builder.load_string(KV)

    def change_scale(self, instance_button: MDRaisedButton) -> NoReturn:
        Animation(
            scale_value_x=0.5,
            scale_value_y=0.5,
            scale_value_z=0.5,
            d=0.3,
        ).start(instance_button)


Test().run()

API - kivymd.uix.templates.scalewidget.scalewidget

class kivymd.uix.templates.scalewidget.scalewidget.ScaleWidget

Base class for controlling the scale of the widget.

scale_value_x

X-axis value.

scale_value_x is an NumericProperty and defaults to 1.

scale_value_y

Y-axis value.

scale_value_y is an NumericProperty and defaults to 1.

scale_value_z

Z-axis value.

scale_value_z is an NumericProperty and defaults to 1.