an overview of qt - asankar1. agenda about qt –a brief intro of qt qt development tools –tools...
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