pyqt: rapid application development

Post on 24-May-2015

2.740 Views

Category:

Technology

10 Downloads

Preview:

Click to see full reader

DESCRIPTION

PyQt: rapid application development

TRANSCRIPT

PyQt Rapid Application Development

Lorenzo Mancini (lmancini@develer.com)

Qt and C++

Qt is a wonderful piece of software Application multi-platform portability layer Lots of modules and features But... it exposes a C++ API

What's wrong with C++?

Compile/run workflow Manual memory management (Few) testing facilities Wrong frame of mind Steep learning curve

Learning C++ in 21 days

2 words about Python

Object-oriented language Automatic memory management Language uses strong/dynamic typing

Objects have types, references don't

Code is compiled on-the-fly No compile/run workflow

Easy to pick up

Learning Python in 21 14 days

What is PyQt

A binding that maps every Qt class to a Python class

It's not Qt rewritten in Python → Easy to keep in sync with Qt

Developed by Riverbank Software (UK based)

Qt's feature set + Python development speed = profit!

First PyQt program

from PyQt4.Qt import *

app = QApplication([])l = QLabel(“Hello world!”)l.show()app.exec_()

Signal/slot

Any Python callable can be a slot!

from PyQt4.Qt import *

app = QApplication([])

pb = QPushButton("Click me!")pb.show()

def cb(): pb.setText("CLICKED!")

QObject.connect(pb, SIGNAL("clicked(bool)"), cb)

app.exec_()

A simple text editor

Live demo

Reality check

CAD/CAM for fashion design Uses PyQt from day 1 200000 LOC codebase (including tests) In production since 2008, actively mantained

Medical appliance control panel Full rewrite of a 1 man-year C++ application

become unmaintenable Development completed in 3 man months

...many others

PyQt licensing

Qt: GPL / LGPL / commercial PyQt: GPL (no LGPL!) → PyQt GPL:

ok for internal tools ok for open-source software

Otherwise: PyQt commercial license

Urban myths

“Python is too slow to develop real applications!”

FALSE: In a typical PyQt application, the bulk of the running code is “inside” Qt, hence running at C++ speed.

“I must distribute the Python interpreter along with my program source!”

FALSE: you can package your application (PyInstaller), then bundle into a nice graphical installer (InnoSetup)

THANKS !THANKS !

Contacts

Mail: info@develer.com

Phone: +39-055-3984627

Fax: +39 178 6003614

http://www.develer.com

Develer S.r.l.Via Mugellese 1/A

50013 Campi BisenzioFirenze - Italy

top related