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

33,256

Published on

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

No notes for slide

Transcript of "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.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×