-
Notifications
You must be signed in to change notification settings - Fork 4
/
example.py
111 lines (93 loc) · 3.88 KB
/
example.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/usr/bin/kivy
from os.path import dirname, join
from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.config import Config
Config.set('kivy', 'keyboard_mode', 'system')
Config.set('input', 'mouse', 'mouse, disable_multitouch')
###############################################################################
# Screen file
###############################################################################
from kivy.core.window import Window
from Datagrid import DataGrid
from kivy.graphics import Color
class DataGridScreen(Screen):
def __init__(self):
super(DataGridScreen, self).__init__()
self.grid = DataGrid()
self.grid.setupGrid([{'text':"Header 1", 'type':'BorderLabel', 'width': 100},
{'text':"Header 2", 'type':'BorderLabel', 'width': 100},
{'text':"Header 3", 'type':'BorderLabel', 'width': 100},
{'text':"Header 4", 'type':'BorderLabel', 'width': 100},
{'text':"Header 5", 'type':'Label', 'width': 100},
{'text':"Header 6", 'type':'Label', 'width': 100},
{'text':"Header 7", 'type':'Label', 'width': 100},
{'text':"Header 8", 'type':'Label', 'width': 100}], Window.width, 46)
self.add_widget(self.grid)
# add test data
for index in range(0,20):
tempData = [{'text':'Item ' + str(index), 'type':'Label'},
{'text':'Item Item Item Item Item Item ' + str(index), 'type':'Label'},
{'text':'Item ' + str(index), 'type':'BorderLabel'},
{'text':'Item ' + str(index), 'type':'BorderLabel'},
{'text':'Item ' + str(index), 'type':'BorderLabel'},
{'text':'Item ' + str(index), 'type':'Label'},
{'text':'Item ' + str(index), 'type':'Label'},
{'text':'Item ' + str(index), 'type':'BorderButton'}]
self.grid.addRow(tempData)
self.grid.changeRowColor(10, Color(1.,0,0,1))
self.grid.changeRowColor(16, Color(1.,0,0,1))
self.grid.changeRowColor(12, Color(0.91764705882352941176470588235294, 0.01960784313725490196078431372549, 0.02352941176470588235294117647059, 1))
#--- test change value of cell
self.grid.changeCellValueAtRow(3, 0, 'AAAAAAA')
self.grid.changeCellValueAtRow(3, 5, 'AAAAAAA')
self.grid.changeCellValueAtRow(7, 0, 'AAAAAAA')
#--- test insert row at index
tempData = [{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Label'},
{'text':'Item X', 'type':'Button'}]
self.grid.addRow(tempData, type='insert', index=0)
tempData = [{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Label'},
{'text':'Item Y', 'type':'Button'}]
self.grid.addRow(tempData, type='insert', index=30)
tempData = [{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Label'},
{'text':'Item Z', 'type':'Button'}]
self.grid.addRow(tempData, type='first')
#---------------------------------
self.grid.removeRowAtIndex(3)
self.grid.removeRowAtIndex(5)
self.grid.removeRowAtIndex(7)
###############################################################################
# Main file
###############################################################################
class Example(App):
def __init__(self):
super(Example, self).__init__()
def build(self):
self.title = 'Example'
self.pos = (0, 0)
self.currentDir = dirname(__file__)
self.sm = ScreenManager()
self.screens = {}
test = DataGridScreen()
self.sm.switch_to(test)
return self.sm
if __name__ == '__main__':
Example().run()