SlideShare a Scribd company logo
1 of 10
Download to read offline
Create ubuntu apps with python
Danial Behzadi
dani.behzi@ubuntu.com
2016 Pycon Iran 2
ubuntu SDK
2016 Pycon Iran 3
Python bindings for Qt
●
PyQt
●
PySide
●
PyOtherSide
2016 Pycon Iran 4
PyQt
●
Pros
– GPL license
– Qt 4 & 5
– Python 2 & 3
●
Cons
– Synchronous by default
– Slow startup
●
Riverbank Computing in 1998
●
Cpython + Python code + Bindings + Qt
●
Python Interpreter uses Qt to display UI
2016 Pycon Iran 5
PySide
●
Pros
– Python 2 & 3
●
Cons
– Synchronous by default
– Big size (> 15 MiB)
– Slow startup
– Qt 4 only
●
Nokia in 2009
●
Cpython + Python code + Bindings + Qt
●
Python Interpreter uses QML to display UI
●
LGPL license
2016 Pycon Iran 6
PyOtherSide
●
Pros
– Asynchronous calls
– Small size (< 150 KiB)
– Fast startup
●
Cons
– BSD license
●
Thp (from Mer) in 2011
●
Qt Plugin + Python library
●
QML as frontend, uses Python as backend
●
Qt 5 and Python 3
2016 Pycon Iran 7
PyOtherSide Platforms
●
Desktop (GNU/Linux, Windows, Mac, etc.)
– Fully Supported
●
GNU/Linux phones (Ubuntu, Sailfish)
– Fully Supported
●
Other phones
– Android: Ship Python 3, Qt 5 and PyOtherSide in app
– Blackberry: Ship Qt 5 and PyOtherSide in app
2016 Pycon Iran 8
PyOtherSide API
●
QML Methods
addImportPath(p)
setHandler(e, c)
importModule(n, c)
call(f, a, c)
evaluate(expr)
●
QML Signals
recieved(data)
error(traceback)
●
Python Module
import pyotherside
pyotherside.send(*args)
pyotherside.atexit(f)
2016 Pycon Iran 9
Sample code and explanation
Watch it live!
2016 Pycon Iran 10
Thanks!

More Related Content

What's hot

What's hot (14)

It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020It is easy contributing to open source - JCON 2020
It is easy contributing to open source - JCON 2020
 
App modernization and evented architectures with Node.js
App modernization and evented architectures with Node.jsApp modernization and evented architectures with Node.js
App modernization and evented architectures with Node.js
 
Groovy android
Groovy androidGroovy android
Groovy android
 
Let your REST API talk
Let your REST API talkLet your REST API talk
Let your REST API talk
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT
 
Spring-batch Groovy y Gradle
Spring-batch Groovy y GradleSpring-batch Groovy y Gradle
Spring-batch Groovy y Gradle
 
Rubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with RubyRubinius - Ruby Implemented with Ruby
Rubinius - Ruby Implemented with Ruby
 
Python in telecommunications (in 7 minutes)
Python in telecommunications (in 7 minutes)Python in telecommunications (in 7 minutes)
Python in telecommunications (in 7 minutes)
 
Build your own low latency live platform
Build your own low latency live platformBuild your own low latency live platform
Build your own low latency live platform
 
Python Desktop Application Development - PythonBo
Python Desktop Application Development - PythonBoPython Desktop Application Development - PythonBo
Python Desktop Application Development - PythonBo
 
Decision making - for loop , nested loop ,if-else statements , switch in goph...
Decision making - for loop , nested loop ,if-else statements , switch in goph...Decision making - for loop , nested loop ,if-else statements , switch in goph...
Decision making - for loop , nested loop ,if-else statements , switch in goph...
 
How we do python
How we do pythonHow we do python
How we do python
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
 
PySide
PySidePySide
PySide
 

Viewers also liked

Ubuntu 13.04 Persian Release Party
Ubuntu 13.04 Persian Release PartyUbuntu 13.04 Persian Release Party
Ubuntu 13.04 Persian Release Party
Danial Behzadi
 

Viewers also liked (18)

Ubuntu 12.04 Persian Release Party
Ubuntu 12.04 Persian Release PartyUbuntu 12.04 Persian Release Party
Ubuntu 12.04 Persian Release Party
 
Understanding ASP.NET MVC
Understanding ASP.NET MVCUnderstanding ASP.NET MVC
Understanding ASP.NET MVC
 
Ubuntu OS and it's Flavours
Ubuntu OS and it's FlavoursUbuntu OS and it's Flavours
Ubuntu OS and it's Flavours
 
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu ServerForget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
Forget MAMP and WAMP, Use Virtual Box to Have a Real Ubuntu Server
 
Ubuntu 13.04 Persian Release Party
Ubuntu 13.04 Persian Release PartyUbuntu 13.04 Persian Release Party
Ubuntu 13.04 Persian Release Party
 
امنیت و محرمانگی در رایانش همراه
امنیت و محرمانگی در رایانش همراهامنیت و محرمانگی در رایانش همراه
امنیت و محرمانگی در رایانش همراه
 
رایانش ابری از دیدگاه آزادی نرم‌افزار
رایانش ابری از دیدگاه آزادی نرم‌افزاررایانش ابری از دیدگاه آزادی نرم‌افزار
رایانش ابری از دیدگاه آزادی نرم‌افزار
 
Free Software Persian
Free Software PersianFree Software Persian
Free Software Persian
 
ubuntu in handheld devices
ubuntu in handheld devicesubuntu in handheld devices
ubuntu in handheld devices
 
Ubuntu phone engineering
Ubuntu phone engineeringUbuntu phone engineering
Ubuntu phone engineering
 
معرفی سیستم‌های توکار در دانشگاه صنعتی شریف
معرفی سیستم‌های توکار در دانشگاه صنعتی شریفمعرفی سیستم‌های توکار در دانشگاه صنعتی شریف
معرفی سیستم‌های توکار در دانشگاه صنعتی شریف
 
مستندات رفتاری در انجمنهای نرم افزار های آزاد
مستندات رفتاری در انجمنهای نرم افزار های آزادمستندات رفتاری در انجمنهای نرم افزار های آزاد
مستندات رفتاری در انجمنهای نرم افزار های آزاد
 
Installation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server EditionInstallation of LAMP Server with Ubuntu 14.10 Server Edition
Installation of LAMP Server with Ubuntu 14.10 Server Edition
 
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
Cloud Ubuntu Open Stack, Juju, MaaS - Ua Deck Nov 2013
 
Human Recognition in Video
Human Recognition in VideoHuman Recognition in Video
Human Recognition in Video
 
LXD Container Hypervisor
LXD Container HypervisorLXD Container Hypervisor
LXD Container Hypervisor
 
Installing Lamp Stack on Ubuntu Instance
Installing Lamp Stack on Ubuntu InstanceInstalling Lamp Stack on Ubuntu Instance
Installing Lamp Stack on Ubuntu Instance
 
The Three Lies About Your Age
The Three Lies About Your AgeThe Three Lies About Your Age
The Three Lies About Your Age
 

Similar to Creating Ubuntu apps with Qt an Python

Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
Montreal Python
 

Similar to Creating Ubuntu apps with Qt an Python (20)

Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
 
Building SciPy kernels with Pythran
Building SciPy kernels with PythranBuilding SciPy kernels with Pythran
Building SciPy kernels with Pythran
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
MicroPython&electronics prezentācija
MicroPython&electronics prezentācija MicroPython&electronics prezentācija
MicroPython&electronics prezentācija
 
Introduction to Python
Introduction to PythonIntroduction to Python
Introduction to Python
 
GoBGP : yet another OSS BGPd
GoBGP : yet another OSS BGPdGoBGP : yet another OSS BGPd
GoBGP : yet another OSS BGPd
 
Qt5.pptx
Qt5.pptxQt5.pptx
Qt5.pptx
 
Introduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential CollaborationIntroduction to Linux-wpan and Potential Collaboration
Introduction to Linux-wpan and Potential Collaboration
 
Nimble - iOS dependency management
Nimble - iOS dependency managementNimble - iOS dependency management
Nimble - iOS dependency management
 
What's unique to Qt
What's unique to QtWhat's unique to Qt
What's unique to Qt
 
Python Flavors
Python FlavorsPython Flavors
Python Flavors
 
Lua as a business logic language in high load application
Lua as a business logic language in high load applicationLua as a business logic language in high load application
Lua as a business logic language in high load application
 
Why learn python in 2017?
Why learn python in 2017?Why learn python in 2017?
Why learn python in 2017?
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3Migrating python.org to buildbot 9 and python 3
Migrating python.org to buildbot 9 and python 3
 
Porting Qt to a new Smartphone for Fun and Fame
Porting Qt to a new Smartphone for Fun and FamePorting Qt to a new Smartphone for Fun and Fame
Porting Qt to a new Smartphone for Fun and Fame
 
Python for IoT, A return of experience
Python for IoT, A return of experiencePython for IoT, A return of experience
Python for IoT, A return of experience
 
Using Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre AbadieUsing Python for IoT: a return of experience, Alexandre Abadie
Using Python for IoT: a return of experience, Alexandre Abadie
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 

Recently uploaded (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 

Creating Ubuntu apps with Qt an Python

  • 1. Create ubuntu apps with python Danial Behzadi dani.behzi@ubuntu.com
  • 2. 2016 Pycon Iran 2 ubuntu SDK
  • 3. 2016 Pycon Iran 3 Python bindings for Qt ● PyQt ● PySide ● PyOtherSide
  • 4. 2016 Pycon Iran 4 PyQt ● Pros – GPL license – Qt 4 & 5 – Python 2 & 3 ● Cons – Synchronous by default – Slow startup ● Riverbank Computing in 1998 ● Cpython + Python code + Bindings + Qt ● Python Interpreter uses Qt to display UI
  • 5. 2016 Pycon Iran 5 PySide ● Pros – Python 2 & 3 ● Cons – Synchronous by default – Big size (> 15 MiB) – Slow startup – Qt 4 only ● Nokia in 2009 ● Cpython + Python code + Bindings + Qt ● Python Interpreter uses QML to display UI ● LGPL license
  • 6. 2016 Pycon Iran 6 PyOtherSide ● Pros – Asynchronous calls – Small size (< 150 KiB) – Fast startup ● Cons – BSD license ● Thp (from Mer) in 2011 ● Qt Plugin + Python library ● QML as frontend, uses Python as backend ● Qt 5 and Python 3
  • 7. 2016 Pycon Iran 7 PyOtherSide Platforms ● Desktop (GNU/Linux, Windows, Mac, etc.) – Fully Supported ● GNU/Linux phones (Ubuntu, Sailfish) – Fully Supported ● Other phones – Android: Ship Python 3, Qt 5 and PyOtherSide in app – Blackberry: Ship Qt 5 and PyOtherSide in app
  • 8. 2016 Pycon Iran 8 PyOtherSide API ● QML Methods addImportPath(p) setHandler(e, c) importModule(n, c) call(f, a, c) evaluate(expr) ● QML Signals recieved(data) error(traceback) ● Python Module import pyotherside pyotherside.send(*args) pyotherside.atexit(f)
  • 9. 2016 Pycon Iran 9 Sample code and explanation Watch it live!
  • 10. 2016 Pycon Iran 10 Thanks!