SlideShare a Scribd company logo
Software Development with Qt



Andreas Jakl
Senior Technical Consultant
Forum Nokia

                               13 April, 2010
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.
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
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:
        •   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
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.
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, 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
© 2010 Nokia




Symbian and Qt
• Symbian^3 – Ready for Qt
   – Qt Pre-installed on devices
   – Ensures forward- and backward
      compatibility
© 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
© 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
© 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
© 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
© 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 <QPushButton>

      int main(int argc, char *argv[])
      {
          QApplication app(argc, argv);
          QPushButton helloButton("Hello World");
          helloButton.resize(150, 50);
          helloButton.show();

           return app.exec();
      }
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!
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()
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
13.04.2010   © 2010 Nokia   21




Deploy
• Run your Qt application on all platforms!




                  Windows 7            Maemo 5           Symbian^1
                                                      (S60 5th Edition)
The Future of Qt
© 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/
© 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
                                                  }
                                                }
© 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
13.04.2010   © 2010 Nokia   26




Hybrid Applications
                      HTML App


                      Qt Web
                      Technology


                      Qt
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
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
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
© 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
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
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
Thank You.
Ad

More Related Content

What's hot (20)

Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
Nokia
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Andreas Jakl
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
Nokia
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible application
AEGIS-ACCESSIBLE Projects
 
Meet Qt
Meet QtMeet Qt
Meet Qt
account inactive
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
account inactive
 
Qt Licensing Explained
Qt Licensing ExplainedQt Licensing Explained
Qt Licensing Explained
account inactive
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
Andreas Jakl
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
Gail Frederick
 
Intel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGoIntel AppUp™ SDK Suite 1.2 for MeeGo
Intel AppUp™ SDK Suite 1.2 for MeeGo
Intel Developer Zone Community
 
MeeGo Overview DeveloperDay Munich
MeeGo Overview DeveloperDay MunichMeeGo Overview DeveloperDay Munich
MeeGo Overview DeveloperDay Munich
Intel Developer Zone Community
 
Writing applications for multiple stores on the WeTab
Writing applications for multiple stores on the WeTabWriting applications for multiple stores on the WeTab
Writing applications for multiple stores on the WeTab
Intel Developer Zone Community
 
Android application development
Android application developmentAndroid application development
Android application development
Fahad A. Shaikh
 
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Michael Kozloff
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
riteshrajgupta
 
FOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula ProjectFOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula Project
OpenNebula Project
 
Starting Development for Nokia N9
Starting Development for Nokia N9Starting Development for Nokia N9
Starting Development for Nokia N9
tpyssysa
 
The Roadmap: Next Generation Qt
The Roadmap: Next Generation QtThe Roadmap: Next Generation Qt
The Roadmap: Next Generation Qt
account inactive
 
Intel AppUp Webinar Italiano General Information
Intel AppUp Webinar Italiano General InformationIntel AppUp Webinar Italiano General Information
Intel AppUp Webinar Italiano General Information
Intel Developer Zone Community
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
Nokia
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Andreas Jakl
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
Nokia
 
2. the aegis story building an accessible application
2. the aegis story   building an accessible application2. the aegis story   building an accessible application
2. the aegis story building an accessible application
AEGIS-ACCESSIBLE Projects
 
KDE Plasma for Mobile Phones
KDE Plasma for Mobile PhonesKDE Plasma for Mobile Phones
KDE Plasma for Mobile Phones
account inactive
 
Google Android Naver 1212
Google Android Naver 1212Google Android Naver 1212
Google Android Naver 1212
Yoojoo Jang
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
Andreas Jakl
 
Smartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone BudgetSmartphone Behavior On A Featurephone Budget
Smartphone Behavior On A Featurephone Budget
Gail Frederick
 
Android application development
Android application developmentAndroid application development
Android application development
Fahad A. Shaikh
 
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Octopod Mobile Development Platform for rapid cross-platform Enterprise IT Mo...
Michael Kozloff
 
FOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula ProjectFOSDEM 2012 - OpenNebula Project
FOSDEM 2012 - OpenNebula Project
OpenNebula Project
 
Starting Development for Nokia N9
Starting Development for Nokia N9Starting Development for Nokia N9
Starting Development for Nokia N9
tpyssysa
 
The Roadmap: Next Generation Qt
The Roadmap: Next Generation QtThe Roadmap: Next Generation Qt
The Roadmap: Next Generation Qt
account inactive
 

Similar to Software development with qt (20)

Qt quick (qml)
Qt quick (qml)Qt quick (qml)
Qt quick (qml)
Elena Kotina
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
NokiaAppForum
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
Francesco Baldassarri
 
Nfc developers nokia mit event 12 13 10
Nfc developers nokia mit event 12 13 10Nfc developers nokia mit event 12 13 10
Nfc developers nokia mit event 12 13 10
MIT Enterprise Forum Cambridge
 
Treinamento Qt básico - aula I
Treinamento Qt básico - aula ITreinamento Qt básico - aula I
Treinamento Qt básico - aula I
Marcelo Barros de Almeida
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
QT-day
 
Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11
MobileMonday Estonia
 
了解 Qt
了解 Qt了解 Qt
了解 Qt
Chi Zhang
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
Daniel Rocha
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
Montreal Python
 
BeTrains for Qt
BeTrains for QtBeTrains for Qt
BeTrains for Qt
maleadt
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 
Qt
QtQt
Qt
Abhishek Lal
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
fndc
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
thiagomacieira
 
Trolltech: Qtopia introduction at Overtheair (London 2008)
Trolltech: Qtopia introduction at Overtheair (London 2008)Trolltech: Qtopia introduction at Overtheair (London 2008)
Trolltech: Qtopia introduction at Overtheair (London 2008)
guest3df603
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
Nokia
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
Nokia
 
Qt introduction
Qt introductionQt introduction
Qt introduction
Ahmed Toulan
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
Nokia
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
NokiaAppForum
 
Meego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea GrandiMeego Italian Day 2011 – Andrea Grandi
Meego Italian Day 2011 – Andrea Grandi
Francesco Baldassarri
 
Welcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard StubertWelcome - Introduzione - Burkhard Stubert
Welcome - Introduzione - Burkhard Stubert
QT-day
 
Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11Qt as Developer Platform @ MoMo Tallinn 11.04.11
Qt as Developer Platform @ MoMo Tallinn 11.04.11
MobileMonday Estonia
 
Qt Technical Presentation
Qt Technical PresentationQt Technical Presentation
Qt Technical Presentation
Daniel Rocha
 
Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9Mp25: Mobile dev with QT and Python for the Notorious N9
Mp25: Mobile dev with QT and Python for the Notorious N9
Montreal Python
 
BeTrains for Qt
BeTrains for QtBeTrains for Qt
BeTrains for Qt
maleadt
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 
Nicholas Foo
Nicholas FooNicholas Foo
Nicholas Foo
fndc
 
qt-project.org and Qt 5
qt-project.org and Qt 5qt-project.org and Qt 5
qt-project.org and Qt 5
thiagomacieira
 
Trolltech: Qtopia introduction at Overtheair (London 2008)
Trolltech: Qtopia introduction at Overtheair (London 2008)Trolltech: Qtopia introduction at Overtheair (London 2008)
Trolltech: Qtopia introduction at Overtheair (London 2008)
guest3df603
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
Nokia
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
Nokia
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
Nokia
 
Ad

More from NokiaAppForumBulgaria (6)

Mobile user experience intro
Mobile user experience   introMobile user experience   intro
Mobile user experience intro
NokiaAppForumBulgaria
 
Ovi store ppt_serbia
Ovi store ppt_serbiaOvi store ppt_serbia
Ovi store ppt_serbia
NokiaAppForumBulgaria
 
Ovi store ppt_serbia
Ovi store ppt_serbiaOvi store ppt_serbia
Ovi store ppt_serbia
NokiaAppForumBulgaria
 
Intro to forum_nokia_sofia_13042010
Intro to forum_nokia_sofia_13042010Intro to forum_nokia_sofia_13042010
Intro to forum_nokia_sofia_13042010
NokiaAppForumBulgaria
 
Java me introduction
Java me   introductionJava me   introduction
Java me introduction
NokiaAppForumBulgaria
 
Basics of web runtime
Basics of web runtimeBasics of web runtime
Basics of web runtime
NokiaAppForumBulgaria
 
Ad

Recently uploaded (20)

Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 

Software development with qt

  • 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)
  • 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