Mais conteúdo relacionado
Semelhante a Software development with qt (20)
Mais de NokiaAppForumBulgaria (6)
Software development with qt
- 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)
- 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