Slide 1

Slide 1 text

- почем опиум для народа? (с) Остап Бендер Write once run anywhere

Slide 2

Slide 2 text

Основные десктопные системы MacOS X Windows Linux

Slide 3

Slide 3 text

Виджетсеты платформ Carbon/Cocoa WinAPI Gtk+/Qt

Slide 4

Slide 4 text

Биндинги к Python PyObjC pywin32 PyGtk

Slide 5

Slide 5 text

Механизм работы биндингов Platform API Python native extension Python API Native side Python side

Slide 6

Slide 6 text

Три независимых проекта, использующих платформенно-специфические биндинги: ! • на Windows - pywin32 • на MacOS X - PyObjC • на Linux - PyGtk Самый надежный путь, но при этом самый затратный

Slide 7

Slide 7 text

Казалось бы, что может быть проще? Правильно выбранный тулкит и мультиплатформенное приложение готово!

Slide 8

Slide 8 text

• Tkinter • PyQt • PyGtk • wxpython МУЛЬТИПЛАТФОРМЕННЫЕ ТУЛКИТЫ

Slide 9

Slide 9 text

Tkinter - стандартный тулкит для Python биндинг к Tcl/Tk

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

Внутренняя структура Tkinter Tkinter Native extension _tkinter TCL Tk Basic platform API

Slide 12

Slide 12 text

Tkinter

Slide 13

Slide 13 text

PyQt

Slide 14

Slide 14 text

PyQt SWIG interfaces Native SWIG interfaces Qt library Basic platform API Внутренняя структура PyQt

Slide 15

Slide 15 text

Tkinter PyQt

Slide 16

Slide 16 text

PyGtk

Slide 17

Slide 17 text

Native python extension Gtk library Basic platform API Внутренняя структура PyGtk

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Tkinter PyQt PyGtk

Slide 20

Slide 20 text

wxWidgets

Slide 21

Slide 21 text

wxpython SWIG interfaces Native SWIG interfaces wxWidgets Platform controls Внутренняя структура wxPython

Slide 22

Slide 22 text

Tkinter PyQt PyGtk wxpython

Slide 23

Slide 23 text

"Что делать?" (с) и кто виноват :)

Slide 24

Slide 24 text

Abstract API PyObjC pywin32 PyGtk Возможный вариант создания полноценного мультиплатформенного тулкита

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Спасибо за внимание! И какие есть вопросы?