Focus

Changing the background color when the mouse is on the widget.

To apply focus behavior, you must create a new class that is inherited from the widget to which you apply the behavior and from the FocusBehavior class.

Usage

from kivy.lang import Builder

from kivymd.app import MDApp
from kivymd.uix.behaviors import RectangularElevationBehavior, FocusBehavior
from kivymd.uix.boxlayout import MDBoxLayout

KV = '''
MDScreen:
    md_bg_color: 1, 1, 1, 1

    FocusWidget:
        size_hint: .5, .3
        pos_hint: {"center_x": .5, "center_y": .5}
        md_bg_color: app.theme_cls.bg_light

        MDLabel:
            text: "Label"
            theme_text_color: "Primary"
            pos_hint: {"center_y": .5}
            halign: "center"
'''


class FocusWidget(MDBoxLayout, RectangularElevationBehavior, FocusBehavior):
    pass


class Test(MDApp):
    def build(self):
        self.theme_cls.theme_style = "Dark"
        return Builder.load_string(KV)


Test().run()
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/focus-widget.gif

Color change at focus/defocus

FocusWidget:
    focus_color: 1, 0, 1, 1
    unfocus_color: 0, 0, 1, 1
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/focus-defocus-color.gif

API - kivymd.uix.behaviors.focus_behavior

class kivymd.uix.behaviors.focus_behavior.FocusBehavior(**kwargs)
Events

on_enter

Called when mouse enters the bbox of the widget AND the widget is visible

on_leave

Called when the mouse exits the widget AND the widget is visible

focus_behavior

Using focus when hovering over a widget.

focus_behavior is a BooleanProperty and defaults to False.

focus_color

The color of the widget when the mouse enters the bbox of the widget.

focus_color is a ColorProperty and defaults to None.

unfocus_color

The color of the widget when the mouse exits the bbox widget.

unfocus_color is a ColorProperty and defaults to None.

on_enter(self)

Called when mouse enter the bbox of the widget.

on_leave(self)

Called when the mouse exit the widget.