Top Banner
An Overview of Qt - asankar1
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.

Dec 23, 2015

Download

Documents

Kelley McDonald
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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