Tuesday, October 19, 2021

Data Tables

 

table2.py


from kivy.lang import Builder

from kivymd.app import MDApp

from kivymd.uix.screen import Screen

from kivymd.uix.datatables import MDDataTable

from kivy.metrics import dp


class MainApp(MDApp):

    def build(self):

        # Define Screen

        screen = Screen()

        # Define Table

        table = MDDataTable(

            pos_hint = {'center_x': 0.5, 'center_y':0.5},

            size_hint = (0.9, 0.6),

            check = True,

            use_pagination = True,

            rows_num = 3,

            pagination_menu_height = '240dp',

            column_data = [

                ('First Name', dp(30)),

                ('Last Name', dp(30)),

                ('Email Address', dp(30)),

                ('Phone Number', dp(30))

            ],

            row_data = [

                ("Tommy", "Smith", "a@a.com", "123"),

                ("Laura", "Smith", "b@a.com", "456"),

                ("Tommy1", "Smith", "a@a.com", "123"),

                ("Laura1", "Smith", "b@a.com", "456"),

                ("Tommy2", "Smith", "a@a.com", "123"),

                ("Laura2", "Smith", "b@a.com", "456"),

                ("Tommy3", "Smith", "a@a.com", "123"),

                ("Laura3", "Smith", "b@a.com", "456"),

                ("Tommy4", "Smith", "a@a.com", "123"),

                ("Laura4", "Smith", "b@a.com", "456"),

                ("Tommy", "Smith", "a@a.com", "123"),

                ("Laura", "Smith", "b@a.com", "456"),

                ("Tommy1", "Smith", "a@a.com", "123"),

                ("Laura1", "Smith", "b@a.com", "456"),

                ("Tommy2", "Smith", "a@a.com", "123")

            ]

        )

        # Bind the Table

        table.bind(on_check_press=self.checked)

        table.bind(on_row_press=self.row_checked)



        self.theme_cls.theme_style = "Light"

        self.theme_cls.primary_palette = "BlueGray"

        # Add table widget to screen

        screen.add_widget(table)

        return screen


    # Function for check presses

    def checked(self, instance_table, current_row):

        print(instance_table, current_row)


    # Function for row presses

    def row_checked(self, instance_table, instance_row):

        print(instance_table, instance_row)


MainApp().run()