Дмитрий Овчинников
Wargaming.net
Python Meetup Minsk, 02/2015
1. Python native, OS native, cross platform GUI toolkit.
2. Linux
3. OS X
4. Windows (crappy)
5. iOS (crappier)
6. Android (the crappiest)
import toga
def button_handler(widget):
toga.Dialog.info('Yay!', 'You have clicked the button')
def startup(app):
container = toga.Container()
button = toga.Button('Hello world', on_press=button_handler)
container.add(button)
if __name__ == '__main__':
app = toga.App('First App', 'org.python.meetup.toga')
app.main_loop()
container = toga.OptionContainer()
left_table = toga.Table(['Hello', 'World'])
left_table.insert(None, 'root1', 'value1')
left_table.insert(None, 'root2', 'value2')
left_table.insert(None, 'root3', 'value3')
left_table.insert(1, 'root4', 'value4')
left_tree = toga.Tree(['Navigate'])
left_tree.insert(None, None, 'root1')
root2 = left_tree.insert(None, None, 'root2')
left_tree.insert(root2, None, 'root2.1')
root2_2 = left_tree.insert(root2, None, 'root2.2')
left_tree.insert(root2_2, None, 'root2.2.1')
left_tree.insert(root2_2, None, 'root2.2.2')
left_tree.insert(root2_2, None, 'root2.2.3')
container.add('Table', left_table)
container.add('Tree', left_tree)
1. No threads
2. No widgets
3. No customization
4. Almost nothing
1. Simple
2. Well designed (so far)
3. No extra credit
4. Made by one person
5. Worth mention
1. Cricket
2. BugJar
3. Duvet
4. rubicon
etc...
1. There is always a small nice library
2. Someone does these libraries
3. Why won't you?
4. Get off the bench!