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()