SegmentedControl#

New in version 1.0.0.

https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/segmented-control-preview.jpg

Usage#

from kivy.lang import Builder

from kivymd.app import MDApp


KV = '''
MDScreen:

    MDSegmentedControl:
        pos_hint: {"center_x": .5, "center_y": .5}

        MDSegmentedControlItem:
            text: "Male"

        MDSegmentedControlItem:
            text: "Female"

        MDSegmentedControlItem:
            text: "All"
'''


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


Test().run()

Or only in python code:

from kivymd.app import MDApp
from kivymd.uix.screen import MDScreen
from kivymd.uix.segmentedcontrol import MDSegmentedControl, MDSegmentedControlItem


class Test(MDApp):
    def build(self):
        screen = MDScreen()
        segment_control = MDSegmentedControl(pos_hint={"center_x": .5, "center_y": .5})
        segment_control.add_widget(MDSegmentedControlItem(text="Male"))
        segment_control.add_widget(MDSegmentedControlItem(text="Female"))
        segment_control.add_widget(MDSegmentedControlItem(text="All"))
        screen.add_widget(segment_control)
        return screen


Test().run()
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-usage.gif

Events#

MDSegmentedControl:
    on_active: app.on_active(*args)
def on_active(
    self,
    segmented_control: MDSegmentedControl,
    segmented_item: MDSegmentedControlItem,
) -> None:
    '''Called when the segment is activated.'''

API - kivymd.uix.segmentedcontrol.segmentedcontrol#

class kivymd.uix.segmentedcontrol.segmentedcontrol.MDSegmentedControlItem(**kwargs)#

Implements a label to place on the SegmentPanel panel.

class kivymd.uix.segmentedcontrol.segmentedcontrol.MDSegmentedControl(*args, **kwargs)#
Events:

on_active

Called when the segment is activated.

md_bg_color#

Background color of the segment panel.

MDSegmentedControl:
    md_bg_color: "#451938"
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-md-bg-color.png

md_bg_color is an ColorProperty and defaults to [0, 0, 0, 0].

segment_color#

Color of the active segment.

MDSegmentedControl:
    md_bg_color: "#451938"
    segment_color: "#e4514f"
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-segment-color.png
MDSegmentedControl:
    md_bg_color: "#451938"
    segment_color: "#e4514f"

    MDSegmentedControlItem:
        text: "[color=fff]Male[/color]"
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-text-color.png

segment_color is an ColorProperty and defaults to [0, 0, 0, 0].

segment_panel_height#

Height of the segment panel.

MDSegmentedControl:
    segment_panel_height: "56dp"
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-segment-panel-height.png

segment_panel_height is an NumericProperty and defaults to ‘42dp’.

separator_color#

The color of the separator between the segments.

MDSegmentedControl:
    md_bg_color: "#451938"
    segment_color: "#e4514f"
    separator_color: 1, 1, 1, 1
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-separator-color.png

separator_color is an ColorProperty and defaults to None.

radius#

Radius of the segment panel.

MDSegmentedControl:
    radius: 0
https://github.com/HeaTTheatR/KivyMD-data/raw/master/gallery/kivymddoc/md-segmented-control-segment-radius.png

radius is an VariableListProperty and defaults to [16, 16, 16, 16].

segment_switching_transition#

Name of the animation type for the switch segment.

segment_switching_transition is a StringProperty and defaults to ‘in_cubic’.

segment_switching_duration#

Name of the animation type for the switch segment.

segment_switching_duration is a NumericProperty and defaults to 0.2.

current_active_segment#

The current active element of the MDSegmentedControlItem class.

current_active_segment is a ObjectProperty and defaults to None.

set_default_colors(self, *args)#

Sets the colors of the panel and the switch if the colors are not set by the user.

animation_segment_switch(self, widget: MDSegmentedControlItem)#

Animates the movement of the switch.

update_segment_panel_width(self, widget: MDSegmentedControlItem)#

Sets the width of the panel for the elements of the MDSegmentedControlItem class.

update_separator_color(self, widget: MDSeparator)#

Updates the color of the separators between segments.

add_widget(self, widget, *args, **kwargs)#

Add a new widget as a child of this widget.

Parameters:
widget: Widget

Widget to add to our list of children.

index: int, defaults to 0

Index to insert the widget in the list. Notice that the default of 0 means the widget is inserted at the beginning of the list and will thus be drawn on top of other sibling widgets. For a full discussion of the index and widget hierarchy, please see the Widgets Programming Guide.

New in version 1.0.5.

canvas: str, defaults to None

Canvas to add widget’s canvas to. Can be ‘before’, ‘after’ or None for the default canvas.

New in version 1.9.0.

>>> from kivy.uix.button import Button
>>> from kivy.uix.slider import Slider
>>> root = Widget()
>>> root.add_widget(Button())
>>> slider = Slider()
>>> root.add_widget(slider)
on_active(self, *args)#

Called when the segment is activated.

on_press_segment(self, widget: MDSegmentedControlItem, touch)#