Cross Platform Qt Johan Thelin
Quick Bio Consultant – Qt/Linux Development
Articles, whitepapers, etc
Training www.stf.se  Member of
Co-organizes FSCONS embedded November 5-7
The History of Qt
What is Qt A framework written in C++
For creating portable application source code – one source, multiple platforms
Produces native applications
The History of Qt Developed since 1991 by  Eirik Chambe-Eng and Haavard Nord
Trolltech founded in 1994
Acquired by Nokia 2008
Nokia Qt Development Frameworks
The History of Qt Originally Qt/X11 and Qt/Windows X11 used Free Qt License, later QPL
Windows was closed source Qt/OS X was released in 2001 (Qt 3.0) OS X was closed source 2005 all platforms released under GPL
2009 all platforms released under LGPL
The History of Qt The overall goal has been portable source code and the best framework Code Less
Create More
Deploy Everywhere
The Architecture of Qt
The Modules of Qt QtGui QtSql QtNetwork QtWebKit QtSvg QtOpenGL QtOpenVG QtMultimedia QtScript QtXml QtXmlPatterns Phonon QtDBus QtTest
The Modules of Qt Modules are libraries in themselves
Can be activated or disabled at compile time
Allows tweaking of feature set and footprint
As easy as  CONFIG += sql network
All modules share the Qt API design
All modules fit together
Key Concepts The  QObject  class makes Qt convenient Simplified memory management
Signals and slots
Introspection
Properties
QObject – Memory Mgmt Each  QObject  can have a parent
Parents delete all children upon destruction MyDialog::MyDialog(QWidget * parent ) : QDialog( parent ) { QPushButton *okButton = new QPushButton( this ); QPushButton *cancelButton = new QPushButton( this ); ... } MyWindow::useDialog() { MyDialog dlg(this); if(dlg.exec() == QDialog::Accepted) ... }

Cross Platform Qt