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

Fired when mouse enter the bbox of the widget.

on_leave

Fired when the mouse exit the widget.

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 ListProperty and defaults to [].

unfocus_color

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

unfocus_color is a ListProperty and defaults to [].

on_enter(self)

Fired when mouse enter the bbox of the widget.

on_leave(self)

Fired when the mouse exit the widget.