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

Post on 23-Dec-2015

253 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 structure and building blocks of Qt

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

About Qt

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

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

Limitations of Qt

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

Other Qt customers

Qt Development Tools

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

Qt Creator

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

Qt Designer

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

Qt Assistant

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

documentation

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

Qt Architecture

Qt Framework Architecture

Hardware peripherals

Operating System and native libraries

Qt built for the underlying OS

Qt APIs

Qt Application

Qt Framework key features

• Inter-object communication through signals and slots

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

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

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

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

QtNetwork

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

QtOpenGL

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

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

QtSvg

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

QtMultimedia

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

surface

QtWebkit

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

Qt for Automotive HMI

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

QtQuick Designer

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

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

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

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

Thank You

top related