]> git.jsancho.org Git - kivyforms.git/blob - examples/designer.py
More widgets in the example
[kivyforms.git] / examples / designer.py
1 from kivy.app import App
2 from kivy.lang import Builder
3 from kivy.uix.button import Button
4 from kivy.uix.checkbox import CheckBox
5 from kivy.uix.label import Label
6 from kivy.uix.textinput import TextInput
7 from kivy.uix.togglebutton import ToggleButton
8 from kivyforms import FormCanvas
9
10 screen = Builder.load_string('''
11 BoxLayout:
12     orientation: 'horizontal'
13     FormCanvas:
14         id: form_canvas
15     BoxLayout:
16         size_hint: 0.2, 1
17         orientation: 'vertical'
18         Button:
19             text: 'Add button'
20             on_press: app.add_button()
21         Button:
22             text: 'Add checkbox'
23             on_press: app.add_checkbox()
24         Button:
25             text: 'Add label'
26             on_press: app.add_label()
27         Button:
28             text: 'Add text input'
29             on_press: app.add_textinput()
30         Button:
31             text: 'Add toggle button'
32             on_press: app.add_togglebutton()
33         Button:
34             text: 'Export to Kv'
35             on_press: app.export_to_kv()
36 ''')
37
38 class DesignerApp(App):
39     button_id = 0
40     label_id = 0
41     togglebutton_id = 0
42
43     def on_start(self):
44         self.form_canvas = self.root.ids.form_canvas
45
46     def add_button(self):
47         self.button_id += 1
48         self.form_canvas.add_widget(Button(text='Button ' + str(self.button_id)))
49
50     def add_checkbox(self):
51         self.form_canvas.add_widget(CheckBox())
52
53     def add_label(self):
54         self.label_id += 1
55         self.form_canvas.add_widget(Label(text='Label ' + str(self.label_id)))
56
57     def add_textinput(self):
58         self.form_canvas.add_widget(TextInput())
59
60     def add_togglebutton(self):
61         self.togglebutton_id += 1
62         self.form_canvas.add_widget(ToggleButton(text='Toggle Button ' + str(self.togglebutton_id)))
63
64     def export_to_kv(self):
65         print(self.form_canvas.export_to_kv())
66
67     def build(self):
68         return screen
69
70 if __name__ == '__main__':
71     app = DesignerApp()
72     app.run()