an overview of qt - asankar1. agenda about qt –a brief intro of qt qt development tools –tools...

33
An Overview of Qt - asankar1

Upload: kelley-mcdonald

Post on 23-Dec-2015

251 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

An Overview of Qt

- asankar1

Page 2: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Agenda

• About Qt– A brief intro of Qt

• Qt development tools– Tools used for building Qt application

• Qt Architecture– The underlying structure and building blocks of Qt

• Qt for Automotive HMI– Why and how Qt can be used for automotive HMI

Page 3: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

About Qt

Page 4: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

What is Qt?

• Cross platform application framework– Linux/Embedded Linux, Windows/Windows CE– Mac OS X, Symbian, Maemo

• Founded by “Trolltech” and acquired by “Nokia”• Free and open source• Built on low level drivers of the specific platforms• Supports GCC and Visual Studio C++ compilers

Page 5: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Advantages of Qt

• Platform portability• Built-in library set• Customizable to fit in embedded platforms• Complete open source• Expandable with user defined library• Widely used in desktop and embedded platforms• Bundled with all required development tools• Good documentation and community support

Page 6: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Limitations of Qt

• Need to be built for every embedded platform• No official support for open source QT• Relatively less performance against native Apps.

Page 7: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Other Qt customers

Page 8: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Development Tools

Page 9: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Development tools

• Qt Creator: IDE for Qt application framework• Qt Designer: GUI layout and forms builder• Qt Assistant: Customizable document reader• Qmake: Cross platform build tool

Page 10: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Creator

• C++ Code editor• Include Designer• Build management• Project management• Supports standard debugging• Integrated context help

Page 11: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Designer

• Drag and drop • Instant preview• Easy to edit object properties• Easy access to signals and slots• Customizable standard widgets

Page 12: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Assistant

• View online Qt manuals• Easy navigation buttons• Basic search and bookmark functions• Provision to add more online source for

documentation

Page 13: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qmake

• Qt project file contains required modules list• Qmake reads Qt project file and creates makefile• Automatically include the library files• Automatically create build rules

Page 14: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Architecture

Page 15: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Framework Architecture

Hardware peripherals

Operating System and native libraries

Qt built for the underlying OS

Qt APIs

Qt Application

Page 16: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Framework key features

• Inter-object communication through signals and slots

• Queryable object properties• Powerful events and filters• Guarded pointers

Page 17: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt Modules

Qt Modules

QtCore Core module used by other modules

QtGui Allow to use UI components

QtNetwork Contains classes for network programming

QtOpenGL Supports OpenGL for 3D objects

QtSvg Supports scalable vector graphics

QtMultimedia Provides low level audio video functionality

QtOpenVG Supports OpenVG rendering

QtWebkit Contains classes for displaying web content

Page 18: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtCore

• Non-GUI functionalities• Abstract classes for other modules• Timers, memory allocations, File handling• String, semaphore and mutex handlers • Event handler and thread management functions

Page 19: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtGui

• Input controls like buttons, text , list controls etc.• Forms, scroll bars, Table, Grids etc.• Image controls, painter and paint engines etc.• UI event handlers

Page 20: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtNetwork

• Network access and configuration manager• Ftp functions, TCP/UDP socket managers• Host address, URL and cookie manager• Authentication and cryptographic functions

Page 21: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtOpenGL

• GL format and context manager• GL Window surface, buffer and Widget• Frame buffer object• Shader compiler and linker

Page 22: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtOpenVG

• Provides EGL based or OpenGL based OpenVG• Manages VG painter, paint engine and paths• 2D vector primitives functions• Text drawing and pixmap drawing functions

Page 23: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtSvg

• SVG generator• SVG renderer• SVG Widget• Graphics SVG item

Page 24: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtMultimedia

• Audio format settings and device info functions• Audio input/output interface functions• Classes for video buffer, video frame and video

surface

Page 25: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtWebkit

• Web frame, web page and web view • Web history manager• Web settings and plug-in factory

Page 26: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt for Automotive HMI

Page 27: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtQuick

• Technology for modern UI • UI behaviors defined using QML• Integrated to Qt app by QtDeclarative module• UI loadable at runtime• Easy to program and visualize using QML viewer

Page 28: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

QtQuick Designer

Page 29: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Cross platform Qt setup

Download Qt source

Build Host Qt

Build Qt Simulator

Configure Qt source for target

Build Qt-target

Copy Qt-target into target

Develop Qt application

Build and test using Host Qt

Build the application for Qt Sim

Test with simulator

Build application for Qt-target

Run the application from target

Building Qt variants Developing Qt App

Page 30: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Qt advantage in automotive

• Easy to use and customizable UI• Flexibility to update and adapt new changes• Utilizes hardware to improve performance in graphics,

audio and video applications• Ability to integrate web contents• Projects can be platform independent

Page 31: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Activities done so far

• Built embedded Qt version 4.7• Developed demo Opengl ES application• Ported screen driver to use hardware acceleration• Benchmarked the performance of Qt in Opengl ES

Page 32: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

To be done in Qt

• Build the latest Qt version 4.7.1 for embedded• Explore the new feature QtQuick• Explore the usage QtMultimedia module• Develop applications with QtQuick UI and multimedia• Compare the performance with commercial tools

Page 33: An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying

Thank You