Your SlideShare is downloading. ×
0
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Software development with qt
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Software development with qt

33,196

Published on

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
33,196
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
176
Comments
1
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Software Development with Qt Andreas Jakl Senior Technical Consultant Forum Nokia 13 April, 2010
  • 2. 13.04.2010 © 2010 Nokia 2 Qt in a Nutshell Qt is a class library for platform independent development of graphical user interfaces based on C++. The framework also includes XML, databases, multithreading, network, internationalization, 3D, WebKit, multimedia, etc.
  • 3. 13.04.2010 © 2010 Nokia 3 Short History of Qt Focus on mobile platforms (Symbian, Maemo, MeeGo), dedicated mobility APIs Nokia purchases Trolltech, name changes to Qt Development Frameworks APIs Qt 4.0 – compatibility break, leads to new KDE 4 desktop Qtopia – platform for mobile phones & PDAs First public release through newsgroups (Qt 0.90) • Dual licensing: commercial & free for open source Decided to go into business • “Q” looked beautiful in Emacs font. “t” for toolkit • Company : Quasar Technologies (later: Trolltech) Development started • Cross platform GUI toolkit was needed Eirik Chambe-Eng Haavard Nord
  • 4. 13.04.2010 © 2010 Nokia 4 Some Well-Known Customers … and many, many more!
  • 5. 13.04.2010 © 2010 Nokia 5 Qt Licensing • LGPL license • Qt is completely free! – Unlike GPL, the LGPL: • Allows using Qt for free in commercial, closed source apps – Complete development source code of Qt available • Commercial version – Code changes to Qt source code don’t have to be shared – Included support options
  • 6. 13.04.2010 © 2010 Nokia 6 Platforms Windows Mac OS Linux / X11 C++ Embedded Linux Windows CE Maemo / MeeGo Java Symbian (S60) Python Ada Pascal Maintained by Perl Qt open source community. PHP Not officially supported by Qt Development Frameworks.
  • 7. 13.04.2010 © 2010 Nokia 7 Mobile Development Java ME
  • 8. 13.04.2010 © 2010 Nokia 10 Symbian and Qt • Qt for Symbian: – Compatible to S60 3rd. Edition, FP1+ (Nokia N95, E71) – Install SDK for your device, or lowest denominator for devices you want to support with your product • Info about system version of Nokia S60 devices: http://www.forum.nokia.com/devices/ Qt Compatibility Series 60 Series 60 S60 S60 S60 S60 Symbian^2 Symbian^3 Symbian^4 1st Ed. 2nd Ed. 3rd Ed. 3rd Ed. 3rd Ed. 5th Ed. (+ 3 FPs) FP1 FP2 = Symbian^1
  • 9. © 2010 Nokia Symbian and Qt • Symbian^3 – Ready for Qt – Qt Pre-installed on devices – Ensures forward- and backward compatibility
  • 10. © 2010 Nokia 12 Symbian and Qt • Symbian^4: replaces S60 with Qt-based UI • Components: – Uiemo (UI Extensions for Mobile, Orbit): extension library for Qt, 50+ UI elements tailored for mobile – Direct UI: new app framework based on Uiemo • Availability: – End of 2010 Symbian^4 Concept Video
  • 11. © 2010 Nokia 13 Maemo / MeeGo and Qt • Maemo 5 – GTK+ based UI – Qt pre-installed – Final Qt support: H1 2010 (4.6.2) • MeeGo 1.0 N (formerly: Maemo 6) – Qt replaces GTK+ – Multi-touch, gestures support – GTK and Clutter will stay in MeeGo
  • 12. © 2010 Nokia 14 MeeGo and Qt • Moblin (Intel) and Maemo (Nokia) merge to – New Linux distribution (Linux Foundation) – MeeGo UI toolkit based on Qt – GTK and Clutter included for application compatibility
  • 13. © 2010 Nokia 15 Qt Architecture • Qt uses native styles to draw UI – UI elements have original look & feel – Can be adapted by the developer • Built on low level APIs of platform – No runtime! • Cross-platform – Single source for multiple platforms – Only requires recompilation
  • 14. © 2010 Nokia 16 Getting Started Install Qt SDK from qt.nokia.com Start Qt Creator UI
  • 15. 13.04.2010 © 2010 Nokia 17 Hello World Project main.cpp #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton helloButton("Hello World"); helloButton.resize(150, 50); helloButton.show(); return app.exec(); }
  • 16. 13.04.2010 © 2010 Nokia 18 Qt and C++ • Qt goes beyond C++ – Seamless object communication (signals & slots) – Meta object system, featuring object properties and object trees – Contextual string translation for internationalization • … but still works with standard C++ compilers on all platforms!
  • 17. 13.04.2010 © 2010 Nokia 19 Interactivity: Quit Hello World • Add functionality to exit the Hello World example: QObject::connect(&helloButton, SIGNAL(clicked()), &app, SLOT(quit())); – Button emits clicked() signal – Connected to QApplication::quit()
  • 18. 13.04.2010 © 2010 Nokia 20 Signals & Slots • Signal – Emitted when a particular event occurs (e.g., clicked()) – Qt widgets: predefined signals – Also create your own signals • Slot – Function called in response to a signal – Qt widgets: predefined slots (e.g., quit()) – Also create your own slots • Connection signals  slots established by developer, handled by Qt framework
  • 19. 13.04.2010 © 2010 Nokia 21 Deploy • Run your Qt application on all platforms! Windows 7 Maemo 5 Symbian^1 (S60 5th Edition)
  • 20. The Future of Qt
  • 21. © 2010 Nokia 23 Qt Quick (Qt User Interface Creation Kit) • Create UIs as a designer – Without C++ knowledge – Using visual tools – Module: Declarative UI – Based on QML language (extension to JavaScript) – Supported in Qt 4.7 – http://blog.qt.nokia.com/2010/02/15/meet-qt-quick/
  • 22. © 2010 Nokia 24 QML • Describe UI by tree structure of property bindings – Properties dynamically evaluated – Communication through Rectangle { signals & slots width: 200 – Bindings to C++ code possible height: 200 color: "white" – Animate properties using states Image { source: "pics/logo.png" and transitions anchors.centerIn: parent } }
  • 23. © 2010 Nokia 25 UI Framework (Uiemo) • Scene graph approach to the UI • Optimized for – Graphics effects, 3D HW acceleration – Gestures, multi-touch, kinetics • Adventurous? – It’s open source! – Symbian: http://qt.gitorious.org/uiemo
  • 24. 13.04.2010 © 2010 Nokia 26 Hybrid Applications HTML App Qt Web Technology Qt
  • 25. 13.04.2010 © 2010 Nokia 27 Advantages of Hybrid Applications Web Qt HTML, CSS, JavaScript C++ Rapid development Full device access Broad reach Powerful libraries Embed Qt UI elements into HTML page Access Qt objects from JavaScript Trigger JavaScript from Qt Shared storage http://qt.nokia.com/forms/whitepapers/reg-whitepaper-hybrid
  • 26. 13.04.2010 © 2010 Nokia 28 Qt Mobility • Qt: Desktop → Mobile • Requires new APIs for – Sensors – Location – Messaging – etc. • Qt Mobility: new cross-platform APIs for mobile use cases – Back-end implementation on all platforms where it makes sense
  • 27. 13.04.2010 © 2010 Nokia 29 Smart Installer • Distribute Qt apps on Symbian devices – Qt not pre-installed on current phones – Solution: installation / update on demand – Package Smart Installer with your app • Download – http://qt.nokia.com/developer/nokia-smart-installer-for-symbian – Final: H1 2010
  • 28. © 2010 Nokia 30 Qt 4.7 • Qt 4.7 Tech Preview: Available now! – Includes Qt Quick – Integrates first parts of Qt Mobility – Focus on performance • http://qt.nokia.com/developer/qt-roadmap
  • 29. 13.04.2010 © 2010 Nokia 31 Qt Books C++ GUI Programming with Qt 4 (2nd edition) Jasmin Blanchette, Mark Summerfield. Prentice Hall. Official book for Qt development. Good for looking things up or for enhancing your knowledge, average for learning from scratch. Status: Qt 4.3, 2008 Foundations of Qt Development Johan Thelin. Apress. More in-depth and technically oriented explanation of Qt. Most other books are rather similar to the official documentation that you get for free with the SDK – this is different, and is therefore a good companion. Status: 2007
  • 30. 13.04.2010 © 2010 Nokia 32 Even More Information Qt for Symbian Editors: Frank H. P. Fitzek, Tommi Mikkonen, Tony Torp. Wiley. For Qt developers wanting to get started with development on the mobile Symbian platform, or the other way round. Status: Qt 4.6, April 2010 Online: qt.nokia.com, www.forum.nokia.com, www.qtcentre.org Lots of documentation and examples installed with SDK
  • 31. Thank You.

×