• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Qt Technical Presentation
 

Qt Technical Presentation

on

  • 6,650 views

Presentation on Qt Developer Frameworks for a more technical audience, including the changes in version 4.6 and support for Maemo and Symbian mobile platforms.

Presentation on Qt Developer Frameworks for a more technical audience, including the changes in version 4.6 and support for Maemo and Symbian mobile platforms.

Statistics

Views

Total Views
6,650
Views on SlideShare
6,609
Embed Views
41

Actions

Likes
5
Downloads
0
Comments
2

2 Embeds 41

http://www.slideshare.net 40
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

12 of 2 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • i wud like to give a presentation on this topic. can u plz mail it to me?????
    plzzzzz...
    my id is mandavi9@gmail.com
    Are you sure you want to
    Your message goes here
    Processing…
  • can you mail me this ppt please?
    because i would like to give a presentation on this framework.hope you will send soon to my mail address helium_mercury2035@yahoo.com
    thanks in advance.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Qt Technical Presentation Qt Technical Presentation Presentation Transcript

    • Cross platform application development with Qt Daniel Rocha Sr. Technology Expert Forum Nokia
    • Contents
      • Introduction
      • Qt overview
      • Qt for Nokia’s mobile platforms
      • Hands-on demo
    • 1. Introduction Qt is cute
    • Background
      • Trolltech was founded in 1994 and first Qt release went live 1995
      • I n June 2008 Nokia acquired Trolltech ASA to enable the acceleration of their cross-platform software strategy for mobile devices and desktop applications, and to develop its Internet services business.
      • On September 27, 2008 Nokia fully integrated Trolltech and named the new Nokia entity Qt Software.
      • Nokia will keep the Qt cross platform focus.
      • Nowadays ” Qt Development Frameworks ”
      http:// qt.nokia.com
    • Facts
      • Easy to learn
      • Comprehensive documentation with good examples
      • Qt x mobile features
        • In the first phase you will need to write Qt + native code
        • Qt ’Mobility APIs’
      • Supports major desktop OSs + Nokia’s platforms
      • Qt will be the main choice for developers cross-platform development and Nokia platforms
      http:// qt.nokia.com
    • What is Qt?
      • Pronounced “cute”.
      • Qt is a cross platform application framework .
      • All the tools you need to develop applications are offered free of charge.
      • Qt offers APIs for C++
      • An application done with Qt can be run on all widely used desktop environments and also embedded environments like Windows CE, Maemo Linux (N900) and Symbian
      • Apps are compiled to native applications . Qt is implemented starting from as low level as suitable instead of providing new API layers on top of existing high-level APIs.
      http:// qt.nokia.com
    • Qt http:// qt.nokia.com
    • Qt versions
      • Qt 4.5 is the latest stable version of Qt and was released in March 2009. Improvements include:
        • Newest Qt WebKit Integration
          • The WebKit browser engine included with Qt has the latest WebKit features:
            • Support for full page zooming, with appropriate rescaling of images and fonts.
            • The CSS-based transformation and animation features provided by a WebKit extension.
            • Netscape plugin API
        • Mac OS X Cocoa Support
        • XML Transformations with XSLT
      http:// qt.nokia.com
    • Qt versions
      • Qt 4.6 beta has been announced in October 2009. Improvements include:
        • Symbian support
        • Maemo support
        • Animation framework
        • State machine framework
        • Multi touch support
        • DOM access API: Web pages and XML
        • Performance optimizations
        • Graphics effects: blurring, colorizing, blooming.
        • Qt 3D – simplifying Open GL
      http:// qt.nokia.com
    • 2. Overview Qt is easy
    • C++ Application Framework
      • Qt provides easy C++ APIs
      • Qt goes beyond C++ in the areas of inter-object communication and flexibility for advanced GUI development.
      • Adds some features to C++:
        • A very powerful mechanism for seamless object communication called signals and slots
        • Queryable and designable object properties
        • Powerful events and event filters
        • Contextual string translation for internationalization
        • Sophisticated interval driven timers that make it possible to elegantly integrate many tasks in an event-driven GUI
        • Hierarchical and queryable object trees that organize object ownership in a natural way
        • Guarded pointers (QPointer) that are automatically set to 0 when the referenced object is destroyed
    • Overview
      • The Qt class library encompasses all the functions needed to build robust, high-end applications
      • Separated into several modules, Qt’s intuitive API includes
        • Core Classes
        • GUI Classes
        • SQL Database Classes
        • XML Classes
        • Networking Classes
        • OpenGL ® Classes
        • Qt WebKit Integration
        • Multimedia classes
        • And more
    • Signals and Slots in Core Module
      • Unique inter-object communication mechanism provides
        • Type-safe callback between objects
        • Facilitates loose coupling / encapsulation
          • Sender and receiver does not “know about” each other
        • 1-to-many, many-to-1 communication between objects
        • Works across threads
      • Fully object-oriented
      • A signal is emitted when a particular event occurs . A slot is a function that is called in response to a particular signal .
    • Qt GUI Classes
      • All the UI components usually needed
        • Customized components can be written and integrated with IDEs
      • Provides rich set of GUI components and supporting functionality
        • User interface components
          • Simple to complex widgets and controls, dialogs
        • Model-View-Controller (MVC) Item views
        • Styles – ensuring native or custom look and feel on target platforms
        • Font-aware layout system
        • Accessibility classes
        • Canvas component with Widget support
    • Qt Database Classes
      • Provide platform and database- independent access functionality
      • Driver Layer
        • Low-level bridge between specific databases and the SQL API layer
      • SQL API Layer
        • Provide access to databases
      • User Interface Layer
        • Link data from a database to data-aware widgets
      • Supports most major database drivers
        • DB2, IBASE, MySQL, OCI, ODBC, PSQL, SQLITE, TDS
      QSqlDatabase db = QSqlDatabase::database("sales"); QSqlQuery query ("SELECT Lastname, City FROM Names", db);
    • Qt Networking Classes
      • Provides TCP/IP networking functionality
      • TCP sockets for clients and for servers
      • Encapsulates TCP and UDP APIs
      • SSL support
      • HTTP 1.1 compliant asynchronous API
      • FTP, DNS implementation & SSL support
        • QHttp http;
        • connect(http, SIGNAL(done(bool)), this, SLOT(done(bool)));
        • http->get(“http://www.softafoorumi.com/amazingApi.jsp?action=doGreatThings”);
        • void MyClass::done(bool error)
        • {
        • QString data = http->readAll();
        • //handle data
        • }
      • OpenGL is a standard API for rendering 3D graphics
      • Allows you to build your user interface in Qt, display and manipulate 3D model in OpenGL ®
      • Integrates OpenGL canvas with Qt
      • Provides frame buffer and pixel buffer abstraction
      • Supports accelerating 2D painting with OpenGL
      • Mix 2D painting and 3D scenes
      Qt Open GL/3D Classes
    • Qt XML Classes
      • Core Module
        • Simple XML stream reader and writer
      • XML Module
        • A well-formed XML parser using the SAX2 (Simple API for XML) interface
        • Implementation of the DOM Level 2 (Document Object Model)
      • XmlPatterns module
        • An implementation of the XQuery standard
        • Enable users to query XML files similar to SQL
        • Semantics for value assignment, filtering, and simple operations
        • Fully controllable output formatting
      • Qt 4.5 adds XSLT support
        • QXmlStreamReader xml;
        • xml.addData( data );
        • while (!xml.atEnd())
        • {
        • xml.readNext(); ...
        • // do processing
        • }
    • Qt WebKit Integration
      • An open source HTML rendering component integrated with Qt
      • Based on webkit ( http://webkit.org ) that is also used by f.ex Safari, Google Chrome & iPhone
      • Web standards compliant
        • support for HTML, XHTML, XML, stylesheets, JavaScript, HTML editing, HTML canvas, AJAX, XSLT, XPath, some SVG.
      • Deployable wherever Qt is: cross-platform/cross-version/cross-device
      • Interact with Web environment, expose native objects
      • NPAPI support with Qt 4.5
      • QWebView *view = new QWebView(parent);
      • view->load(QUrl("http: // qt.nokia.com/"));
      • view->show();
      http://webkit.org
    • Phonon
      • Single, easy to use API (”Phonon”) for playback
      • Provides possibility to play/synchronize multiple sound/video streams
      • Will use native back-end format support
        • DirectShow on Windows
        • GStreamer on X11
        • QuickTime on Mac
        • MMF on Symbian
      • Plan to add more video and authoring support in the future
        • Phonon::VideoPlayer *player =
        • new Phonon::VideoPlayer(Phonon::VideoCategory, parentWidget);
        • player->play(url);
      • Qt Designer: GUI layout and forms builder
      • Qt Creator : C ross-platform IDE for use with the Qt application framework
      • Qt Linguist: Internationalization toolset
      • Qt Assistant: Customizable documentation reader
      • qmake: Cross-platform build tool
      • Integration with Visual Studio ® and Eclipse ® IDEs – including Nokia’s Carbide.C++ For Symbian
      • Integration with Maemo SDK in the works
      Development Tools
    • Qt Designer
      • Qt Designer is a powerful, drag-and-drop GUI layout and forms builder
      • Features
        • Supports forms and dialog creation with instant preview
        • Integrates with Qt layout system
        • Extensive collection of standard widgets
        • Support for custom widgets and dialogs
        • Seamless integration with many IDEs
      • Benefits
        • Greatly speeds the interface design process
        • Enables native look and feel across all supported platforms
        • Developers work within the environment of their choice, leveraging existing skills
    • Qt Creator
      • Lightweight, cross-platform IDE for Qt
      • Advanced C++ code editor
      • Integrated, context sensitive help system
      • Integrated visual debugger (based on gdb)
      • Integrated source code management
      • Project and build management tools
      • Integrated Qt development tools
    • Code navigation tools
      • Challenge
      • Projects contain hundreds of source files
      • Developers often don’t know name/location of file
      • Solution
      • Open files without knowing exact names or locations
      • Search for classes, functions, symbols and files
      • Follow symbols across several locations/files
      • Switch between headers and source files
      • Switch between declarations and definitions
      Quickly finding and opening classes.
    • Tailored to the needs of Qt cross-platform developers
      • Challenge
      • Qt is cross-platform, but IDEs/dev. environments are not
      • Can be difficult to get up with a new framework
      • Solution
      • True cross-platform development environment for Qt
      • Integrated Qt-specific features (i.e. Signals & Slots)
      • Debugger aware of Qt class structures
      • New developers get productive sooner
      Visualizing Qt class structures in Debug mode.
    • Powerful C++ code editor
      • Challenge
      • Writing elegant, correct code can be time consuming
      • Finding help often demands context switching
      • Solution
      • Syntax highlighting and automatic code completion
      • Static code checking as you type
      • Context sensitive help
      • Code folding
      • Parenthesis matching and parenthesis selection modes
      • Advanced editing capabilities like block selection
      Code completion. Context-sensitive help.
    • Available as part of complete SDK Qt Designer GUI Layout & Forms Tool Qt Assistant Help file/documentation browser Qt Linguist Translation/I18n Tool qmake Cross-platform build tool Qt Development Tools Qt Libraries Qt SDK Licensing Options: Commercial LGPL
    • 3. Qt on Nokia’s mobile platforms Qt is mobile
    • Nokia + Ovi Developer Story |  With the simplified toolchain you can tackle f. ex Maemo and Symbian-based devices Develop on PC, Mac or Linux Nokia’s Qt mobile offering
    • Qt for Symbian platform
      • Qt Development Frameworks announced in October-08 the porting of Qt to Symbian OS, the world's leading, open smartphone platform
      • Beta package available for download from Qt Development Frameworks website http://qt.nokia.com (http://qt.nokia.com/developer/qt-4.6-beta-for-symbian-developers).
      • With the inclusion of the Symbian OS platform, developers have an additional 130 million target devices that they can support with their Qt-based applications.
    • Qt for Symbian platform - Total Offering
      • Qt for Symbian – Qt 4.6 ported to S60 3 rd Edition FP 1 and FP 2, 5 th editions.
        • Will be the only UI framework for Symbian Foundation devices in 2010.
      • Carbide.c++ 2.0 supporting Qt/Symbian development.
        • Fully integrated form editor ( Qt Designer )
        • Wizards for creating new Qt projects and classes
        • Integrated .pro file editor
        • Automated build setup for moc, uic, and rcc
      • Examples and additional documentation available in Forum Nokia
      • And more to come…
    • Current Release
      • The release is called Colossus with following functionality
        • QtCore - http://doc.trolltech.com/4.5/qtcore.html
        • QtGui - http://doc.trolltech.com/4.5/qtgui.html
        • QtNetwork - http://doc.trolltech.com/4.5/qtnetwork.html
        • QtScript - http://doc.trolltech.com/4.5/qtscript.html
        • QtSql - http://doc.trolltech.com/4.5/qtsql.html
        • QtSvg - http://doc.trolltech.com/4.5/qtsvg.html
        • QtTest - http://doc.trolltech.com/4.5/qttest.html
        • QtWebKit - http://doc.trolltech.com/4.5/qtwebkit.html
        • QtXml - http://doc.trolltech.com/4.5/qtxml.html
        • Phonon - http://doc.trolltech.com/4.5/phonon-module.html
      • Where to get it: http://pepper.troll.no/s60prereleases/
    • Qt for Symbian releases FINAL P11 Garden P3-09 based on 4.5 Tower P6-09 based on 4.5 Pyramid P10 based on 4.4 QtNetwork QtXml QtGUI *) QtCore QtScript QtSql QtSvg http://pepper.troll.no/s60prereleases/ Beta late P9 QtXmlPatterns QtWebkit Phonon QtTest
      • Colossus release focusing on HW
      • acceleration and performance
      • Bringing in QtSqt, QtWebkit (experimentary version) and phonon with MMF
      QtOpenGL Q3Support
    • Qt Support in Carbide.c++ 2.0
      • Support for Qt development
      • Carbide works with Qt projects
        • .PRO editor for easy project configuration
        • Package /deploy projects to phone
        • Qt plug-ins are included in Carbide
        • Qt project Wizard
        • Support for Qt UI design tool
      • Oh yeah, since Qt for Symbian is a Symbian application, you can use same tools for debugging, profiling etc.
    • Qt for Maemo platform
      • Maemo is an open-source development
      • platform for Internet Tablets and maemo
      • mobile computers (f.ex N900)
        • 90% of source code is open-source
        • Maemo 5 contains GSM and 3G functionality
        • In maemo 5 GTK is still supported as development framework – not officially supported in maemo 6 anymore
      • We’re bringing in Qt for maemo and encourage all developers to use Qt as the long term solution
        • http://qt.nokia.com/developer/qt-for-maemo-developers
    • Product evolution Internet Optimized Multimedia Computer Nokia N800 2 nd generation of Nokia Internet Tablets. Nokia N810 Taking the positioning of the Tablet Category from a predominantly ‘one-way’ surfing tool, to a genuine ‘two way’ communication device. With integrated slide keyboard N810 leads the richly connected pocketable Web 2.0 experience allowing you to connect to your content and experiences wherever you are. Nokia N810 WiMAX Edition Bringing WiMAX connection to strengthen the internet story. With wider wireless internet coverage, Internet will truly become personal and mobile. Nokia 770 1 st generation of Nokia Internet Tablets Easy access to the internet. High resolution touch screen.
    • Maemo 5
      • Linux based operating system for N900
      • Optimized for pocket sized devices and finger use
      • Panorama desktop
      • Multitasking with dashboard
      • New UI style
      • Animated UI
      • Compositing window manager
      • Accelerated graphics with OpenGL-ES2
      http://www.forum.nokia.com/devices/N900 N900 WLAN IEEE 802.11b/g 32 GB internal storage Integrated GPS with A-GPS High definition camera support (integrated Image Signal Processor) 5 megapixel camera (2584 × 1938 pixels) HW acceleration for OpenGL ES 2.0 3.5 inch touch-screen 800 × 480 pixel resolution High-speed USB 2.0 HSPA/3G support – online anywhere 3G connectivity TI OMAP 3 processor, ARM Cortex-A8 600 MHz
    • Hildon UI – simple and customizable Taskbar to navigate applications Status bar indicating device state Widgets and RSS feeds for up-to-date information Consistent controls across applications
    • Maemo software architecture ARM/OMAP-based Linux kernel GNOME Structured File Library System Libraries incl. GNU C, STD C++, OpenSSL, curl HTTP, etc Maemo SDK Qt Maemo UI and applications Debian Package Management System services such as D-Bus, DSM, MCE, BME, and SQLite DB GNOME Configuration Management Telepathy Communication Framework gStreamer Multimedia Framework E-D-S Calendar/ Contacts GNOME VFS File Access Maemo Launcher Maemo platform: Mostly open source except connectivity, power management and licensed software Mostly binary code for Nokia devices Hildon UI Framework GNOME/GTK+ Application Framework
    • Plus Qt Mobility APIs for Mobile Development
      • First release planned Q4/2009
        • Supporting Symbian
        • Maemo support under investigation
      • Planned content
        • Service Framework
        • Contacts API
        • Location API
        • System Information API
        • Messaging API
        • Bearer Management
        • Context Framework
      http:// labs.trolltech.com/page/Projects/QtMobility
    • 4. Demo Time to embarrass myself…
    • How to Get Started?
      • http://qt.nokia.com
    • Comments? Questions? Thank you! [email_address]
    • Back-up slides
    • Qt 4.5 Licensing
    • Licensing
      • There have been lot of speculation and concerns of used licensing model.
      • The current release is under Commercial Tech Preview license which allows evaluating and testing only.
      • Qt 4.5 will be released under LGPL i.e no license fees for closed source commercial development
        • On 14 January, Nokia announced that its Qt cross-platform user interface (UI) and application framework for desktop and embedded platforms will be available under the open source LGPL version 2.1 license from the release of Qt 4.5, scheduled for March 2009.  In addition:
        • Qt source code repositories will be made publicly available and will encourage contributions from desktop and embedded developer communities.
        • Service offerings for Qt will be expanded to ensure that all Qt development projects can have access to the same levels of support, independent of the selected license.