Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Software Development with Qt



Andreas Jakl
Senior Technical Consultant
Forum Nokia

                               13 Ap...
13.04.2010   © 2010 Nokia   2




Qt in a Nutshell
                   Qt is a class library for platform
                 ...
13.04.2010   © 2010 Nokia    3




Short History of Qt
      Focus on mobile platforms (Symbian, Maemo, MeeGo), dedicated ...
13.04.2010   © 2010 Nokia   4




Some Well-Known Customers




                       … and many, many more!
13.04.2010   © 2010 Nokia   5




Qt Licensing
• LGPL license
• Qt is completely free!
    – Unlike GPL, the LGPL:
       ...
13.04.2010   © 2010 Nokia   6




Platforms                                             Windows
                          ...
13.04.2010   © 2010 Nokia   7




Mobile Development




                     Java ME
13.04.2010   © 2010 Nokia   10




Symbian and Qt
• Qt for Symbian:
     – Compatible to S60 3rd. Edition, FP1+ (Nokia N95...
© 2010 Nokia




Symbian and Qt
• Symbian^3 – Ready for Qt
   – Qt Pre-installed on devices
   – Ensures forward- and back...
© 2010 Nokia      12




Symbian and Qt
• Symbian^4: replaces S60 with Qt-based UI
• Components:
    – Uiemo (UI Extension...
© 2010 Nokia   13




Maemo / MeeGo and Qt
• Maemo 5
   – GTK+ based UI
   – Qt pre-installed
   – Final Qt support: H1 20...
© 2010 Nokia   14




MeeGo and Qt
• Moblin (Intel) and Maemo (Nokia) merge to
   – New Linux distribution (Linux Foundati...
© 2010 Nokia   15




Qt Architecture
• Qt uses native styles to draw UI
    – UI elements have original
      look & feel...
© 2010 Nokia   16




Getting Started
 Install Qt SDK from qt.nokia.com
 Start Qt Creator UI
13.04.2010   © 2010 Nokia   17




Hello World Project
     main.cpp
      #include <QApplication>
      #include <QPushBu...
13.04.2010   © 2010 Nokia   18




Qt and C++
• Qt goes beyond C++
    – Seamless object communication
      (signals & sl...
13.04.2010   © 2010 Nokia   19




Interactivity: Quit Hello World
• Add functionality to exit the Hello World example:
  ...
13.04.2010   © 2010 Nokia   20




Signals & Slots
• Signal
    – Emitted when a particular event occurs (e.g., clicked())...
13.04.2010   © 2010 Nokia   21




Deploy
• Run your Qt application on all platforms!




                  Windows 7     ...
The Future of Qt
© 2010 Nokia   23




Qt Quick (Qt User Interface Creation Kit)
• Create UIs as a designer
    – Without C++ knowledge
   ...
© 2010 Nokia   24




QML
• Describe UI by tree structure of property bindings
    – Properties dynamically evaluated
    ...
© 2010 Nokia   25




UI Framework (Uiemo)
• Scene graph approach to the UI
• Optimized for
   – Graphics effects, 3D HW a...
13.04.2010   © 2010 Nokia   26




Hybrid Applications
                      HTML App


                      Qt Web
     ...
13.04.2010   © 2010 Nokia   27




  Advantages of Hybrid Applications
                                         Web       ...
13.04.2010   © 2010 Nokia   28




Qt Mobility
• Qt: Desktop → Mobile
• Requires new APIs for
    – Sensors
    – Location...
13.04.2010   © 2010 Nokia   29




Smart Installer
• Distribute Qt apps on Symbian devices
   – Qt not pre-installed on cu...
© 2010 Nokia   30




Qt 4.7
         • Qt 4.7 Tech Preview: Available now!
             – Includes Qt Quick
             ...
13.04.2010   © 2010 Nokia   31




Qt Books
           C++ GUI Programming with Qt 4 (2nd edition)
           Jasmin Blanc...
13.04.2010   © 2010 Nokia   32




Even More Information
        Qt for Symbian
        Editors: Frank H. P. Fitzek, Tommi...
Thank You.
Upcoming SlideShare
Loading in …5
×

Software development with qt

34,237 views

Published on

Published in: Technology

Software development with qt

  1. 1. Software Development with Qt Andreas Jakl Senior Technical Consultant Forum Nokia 13 April, 2010
  2. 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. 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. 4. 13.04.2010 © 2010 Nokia 4 Some Well-Known Customers … and many, many more!
  5. 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. 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. 7. 13.04.2010 © 2010 Nokia 7 Mobile Development Java ME
  8. 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. 9. © 2010 Nokia Symbian and Qt • Symbian^3 – Ready for Qt – Qt Pre-installed on devices – Ensures forward- and backward compatibility
  10. 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. 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. 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. 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. 14. © 2010 Nokia 16 Getting Started Install Qt SDK from qt.nokia.com Start Qt Creator UI
  15. 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. 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. 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. 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. 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. 20. The Future of Qt
  21. 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. 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. 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. 24. 13.04.2010 © 2010 Nokia 26 Hybrid Applications HTML App Qt Web Technology Qt
  25. 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. 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. 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. 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. 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. 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. 31. Thank You.

×