Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Write once, run everywhere
Search
Yehor Nazarkin
August 12, 2013
Programming
0
6.1k
Write once, run everywhere
Доклад Игоря Новикова на kharkivpy #8
Yehor Nazarkin
August 12, 2013
Tweet
Share
More Decks by Yehor Nazarkin
See All by Yehor Nazarkin
Flask, гордость и предубеждения
nimnull
0
260
Python non-mainstream web
nimnull
0
110
Агрегация и обработка статистики
nimnull
0
5.7k
GPU Computing in Python
nimnull
1
5.6k
To Flask or not to Flask
nimnull
5
620
MongoDB Без ORM
nimnull
0
250
REST in Flask (And small client-side intro)
nimnull
10
1.7k
Other Decks in Programming
See All in Programming
Java 22 Overview
kishida
1
180
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
26
8.1k
Elm 0.19.0 Changes
bkuhlmann
0
490
try! Swift Tokyo 初参加報告LT
hinakko2
0
210
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
360
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
42
18k
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
240
PHP8.3の機能を振り返る / Review of PHP 8.3 features
seike460
PRO
1
110
Build with AI 2024 Seoul - 제로부터 시작하는 Flutter with Gemini 생활 - 박제창
itsmedreamwalker
0
200
Ruby GitHub Packages
bkuhlmann
0
630
Anthropic Cookbook のおすすめレシピ
schroneko
6
630
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
130
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
226
51k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Building an army of robots
kneath
300
41k
Music & Morning Musume
bryan
41
5.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
12
4.6k
How to name files
jennybc
64
93k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
Raft: Consensus for Rubyists
vanstee
132
6.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Designing Experiences People Love
moore
136
23k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Transcript
- почем опиум для народа? (с) Остап Бендер Write once
run anywhere
Основные десктопные системы MacOS X Windows Linux
Виджетсеты платформ Carbon/Cocoa WinAPI Gtk+/Qt
Биндинги к Python PyObjC pywin32 PyGtk
Механизм работы биндингов Platform API Python native extension Python API
Native side Python side
Три независимых проекта, использующих платформенно-специфические биндинги: ! • на Windows
- pywin32 • на MacOS X - PyObjC • на Linux - PyGtk Самый надежный путь, но при этом самый затратный
Казалось бы, что может быть проще? Правильно выбранный тулкит и
мультиплатформенное приложение готово!
• Tkinter • PyQt • PyGtk • wxpython МУЛЬТИПЛАТФОРМЕННЫЕ ТУЛКИТЫ
Tkinter - стандартный тулкит для Python биндинг к Tcl/Tk
None
Внутренняя структура Tkinter Tkinter Native extension _tkinter TCL Tk Basic
platform API
Tkinter
PyQt
PyQt SWIG interfaces Native SWIG interfaces Qt library Basic platform
API Внутренняя структура PyQt
Tkinter PyQt
PyGtk
Native python extension Gtk library Basic platform API Внутренняя структура
PyGtk
None
Tkinter PyQt PyGtk
wxWidgets
wxpython SWIG interfaces Native SWIG interfaces wxWidgets Platform controls Внутренняя
структура wxPython
Tkinter PyQt PyGtk wxpython
"Что делать?" (с) и кто виноват :)
Abstract API PyObjC pywin32 PyGtk Возможный вариант создания полноценного мультиплатформенного
тулкита
None
Спасибо за внимание! И какие есть вопросы?