Programming with Qt for Embedded Devices

Dates:
Location: Waltham, MA
Early Bird Pricing: $2,495*
Regular Price: $2,995*
Register

Course Description

This 5-day course focuses on developing modern applications for embedded systems and touchscreens using Qt and QtQuick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and QtQuick. Efficient and robust design of applications for touchscreen enabled devices utilizing the latest QtQuick techniques is the central focus of this class. As such, architectural considerations for creating applications consisting of beautiful and highly responsive presentation layers, backed by solid back-end implementations are important learning goals for participants.

In the course, we will use the Raspberry Pi embedded system and a multi-point touchscreen. After the class, you may keep the board and touchscreen for a discounted fee of $172.50 plus tax. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.

 

Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Course Outline

Qt Fundamentals
  • Core Classes
  • String Handling
  • Container Classes
  • File Handling
  • Command Line Parsing
  • Lab: File I/O, Text Manipulation, and Command Line Parsing
  • Objects
  • Qt's Object Model
  • Variants
  • Properties and MetaProperties
  • ANSI-Style Typecasts
  • Signals & Slots
  • QTimers
  • Event Handling
  • QApplication, Resources, etc..
Introduction to QML and Qt Quick
  • Introduction to Qt Quick
  • Qt Creator
  • Qt Quick Hello World
  • QML Concepts
  • Composing User Interfaces
  • Nested Elements
  • Graphical Types
  • Text Items
  • Anchor Layout
  • QML Components
Qt Quick Structures and User Interaction
  • Qt Quick Structures
  • Components
  • Signals and Slots in QML
  • QtQuick Controls
  • Modules
  • User Interaction
  • Mouse Input
  • Touch Input
  • Keyboard Input
Animations, States and Transitions
  • Animations
  • Easing Curves
  • Animation Groups
  • States and Transitions
  • States
  • State Conditions
  • Transitions
Under the Hood - the Qt C++ Layer
  • Integrating QML with C++
  • Declarative Environment
  • Exporting C++ Objects to QML
  • Exporting Classes to QML
  • Using Custom Types
  • Plug-ins
Miscellaneous Topics
  • Presenting Data (QML)
  • Arranging Items
  • Data Models
  • Using Views
  • XML Models
  • Views Revisited
  • Graphics Effects
  • Canvas
  • Particles
  • Shaders
  • MultiThreaded Programming
  • Qt Multithreading
  • Thread Synchronization and Primitives

Mandatory computer requirements

Register

< Back to full list of training

10 Keys to Ensuring Success for Your Next Qt Project

Before starting any software development project, there are some things you should know – before you code. In this webinar, we will explore the use of the right people and the right tools first and then we will cover the top 10 things you need to know before using Qt. Join us and learn the best way to future-proof your sophisticated and modern software projects.

Programming with Qt for Embedded Devices

Dates:
Location: Montreal
Early Bird Pricing: $2,495*
Regular Price: $2,995*

Course Description

This 5-day course focuses on developing modern applications for embedded systems and touchscreens using Qt and QtQuick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and QtQuick. Efficient and robust design of applications for touchscreen enabled devices utilizing the latest QtQuick techniques is the central focus of this class. As such, architectural considerations for creating applications consisting of beautiful and highly responsive presentation layers, backed by solid back-end implementations are important learning goals for participants.

In the course, we will use the Raspberry Pi embedded system and a multi-point touchscreen. After the class, you may keep the board and touchscreen for a discounted fee of $172.50 plus tax. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.

 

Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Course Outline

Qt Fundamentals
  • Core Classes
  • String Handling
  • Container Classes
  • File Handling
  • Command Line Parsing
  • Lab: File I/O, Text Manipulation, and Command Line Parsing
  • Objects
  • Qt's Object Model
  • Variants
  • Properties and MetaProperties
  • ANSI-Style Typecasts
  • Signals & Slots
  • QTimers
  • Event Handling
  • QApplication, Resources, etc..
Introduction to QML and Qt Quick
  • Introduction to Qt Quick
  • Qt Creator
  • Qt Quick Hello World
  • QML Concepts
  • Composing User Interfaces
  • Nested Elements
  • Graphical Types
  • Text Items
  • Anchor Layout
  • QML Components
Qt Quick Structures and User Interaction
  • Qt Quick Structures
  • Components
  • Signals and Slots in QML
  • QtQuick Controls
  • Modules
  • User Interaction
  • Mouse Input
  • Touch Input
  • Keyboard Input
Animations, States and Transitions
  • Animations
  • Easing Curves
  • Animation Groups
  • States and Transitions
  • States
  • State Conditions
  • Transitions
Under the Hood - the Qt C++ Layer
  • Integrating QML with C++
  • Declarative Environment
  • Exporting C++ Objects to QML
  • Exporting Classes to QML
  • Using Custom Types
  • Plug-ins
Miscellaneous Topics
  • Presenting Data (QML)
  • Arranging Items
  • Data Models
  • Using Views
  • XML Models
  • Views Revisited
  • Graphics Effects
  • Canvas
  • Particles
  • Shaders
  • MultiThreaded Programming
  • Qt Multithreading
  • Thread Synchronization and Primitives

Mandatory computer requirements

< Back to full list of training

State-of-the-Art OpenGL with Qt

Dates:
Location: Sunnyvale, CA
Early Bird Pricing: $2,495
Regular Price: $2,995
Register

Course Description

This 5-day, hands-on course provides an introduction to modern OpenGL using programmable shader pipelines. It introduces the use of the Qt framework for infrastructure and support to quickly achieve highly efficient and visually appealing, state-of-the-art, interactive graphics applications. The class covers basic topics such as handling of geometry, graphics pipeline, transformations as well as advanced topics such as vertex, fragment and geometry shaders and their applications. Qt and C++ based Labs are designed to let participants experiment with OpenGL easily in order to deepen the understanding of the material.

Course Availability: On-site, Open Enrollment
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming

  • Basic knowledge of geometry

  • Previous experience with OpenGL and/or Qt is not required

Course Outline

This course will be roughly divided into four 90 minute sections and each section will target an even mix of lecture and labs. The goal is to give students plenty of time to experiment with the lab material.

The class uses Qt-5.9.1 and is based on Qt's OpenGL integration classes QOpenGLWidget and QOpenGLWindow. 
Course material is divided into four 90 minute sections per day and each section will target an even mix of lecture and labs. The goal is to give students plenty of time to experiment with the lab material.

Larger OpenGL Topics are organized into parts that are not necessarily equal in length as follows:

Part 1 – The Basic

  • What is OpenGL
  • Steps to Render a Scene with OpenGL
  • Qt’s OpenGL Support
  • OpenGL Rendering Pipeline
  • Shaders
  • Labs: Contexts and Windows, Draw Triangles

Part 2 – Qt Refresher

  • Lab: Wavefront .obj File Reader (Relevant to the Rest of the Course)

Part 3 – GLSL

  • OpenGL Shading Language 
  • in Detail
  • Lab: Rectangles, Grids

Part 4 – A Day at the Movies

  • Vertices and Vectors
  • Models and Cameras, the Model-View Transformation
  • Demo Programs
  • Matrices
  • Depth and Culling
  • Simplest Possible Light Model
  • Lab: Three Dimensional Objects

Part 5 – Directing the Scene

  • Primitives
  • Indexed Drawing
  • Vertex Array Objects (VAO)
  • Handling Multiple Components 
  • of Objects
  • Lab: Three Dimensional Scenes

Part 6 – Let there be Light

  • Let There be Light (at the End of the Tunnel?)
  • Lab: Diffuse Light Model, ADS (Phong) Light Model, Multiple Lights

Part 7 – Textures

  • Texture Basics
  • Textures, Images, Samplers
  • Multiple Textures
  • Qt Support for Textures
  • CubeMap
  • Labs: Multiple Textures, Cube Map

Part 8 – More Textures

  • Textures Advanced
  • FrameBuffer Objects
  • Lab: Framebuffer Objects

Part 9 – Advanced OpenGL

  • Geometry Shaders
  • Vertex Displacement Shaders
  • Animating Textures
  • Image Based Techniques
  • Procedural Texturing with Noise
  • Mapping Explained, Specular, Occlusion, Alpha, Environment, Bump
  • Labs

Part 10 – More Advanced OpenGL

  • More Advanced Topics (Spotlight, Fog, Smoke, Shadows, Cartoon Shading)
  • Reflection and Refraction with Cubemaps
  • Point Sprites
  • Transform Feedback and Particle Systems
  • Instanced Rendering

Part 11 – Timing is Everything

  • QtOpenGLExtensions Module
  • OpenGL Debugging and Timing with Qt

Part 12 – Qt and OpenGL

  • Integration of OpenGL and QtQuick, Custom OpenGL QQuickItem
  • QPainter on QOpenGLPaintDevice 
  • Qt3D

Part 13 – Optimizations

  • Best Practices
  • GLSL Optimizations
  • Vertex Specification Best Practices
  • Common Mistakes
  • Convert GL 3.3 to GLES 2.0

Mandatory computer requirements

Register

< Back to full list of training

Programming with Qt for Embedded Devices

Dates:
Location: Sunnyvale, CA
Early Bird Pricing: $2,495*
Regular Price: $2,995*
Register

Course Description

This 5-day course focuses on developing modern applications for embedded systems and touchscreens using Qt and QtQuick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and QtQuick. Efficient and robust design of applications for touchscreen enabled devices utilizing the latest QtQuick techniques is the central focus of this class. As such, architectural considerations for creating applications consisting of beautiful and highly responsive presentation layers, backed by solid back-end implementations are important learning goals for participants.

In the course, we will use the Raspberry Pi embedded system and a multi-point touchscreen. After the class, you may keep the board and touchscreen for a discounted fee of $172.50 plus tax. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.

 

Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Course Outline

Qt Fundamentals
  • Core Classes
  • String Handling
  • Container Classes
  • File Handling
  • Command Line Parsing
  • Lab: File I/O, Text Manipulation, and Command Line Parsing
  • Objects
  • Qt's Object Model
  • Variants
  • Properties and MetaProperties
  • ANSI-Style Typecasts
  • Signals & Slots
  • QTimers
  • Event Handling
  • QApplication, Resources, etc..
Introduction to QML and Qt Quick
  • Introduction to Qt Quick
  • Qt Creator
  • Qt Quick Hello World
  • QML Concepts
  • Composing User Interfaces
  • Nested Elements
  • Graphical Types
  • Text Items
  • Anchor Layout
  • QML Components
Qt Quick Structures and User Interaction
  • Qt Quick Structures
  • Components
  • Signals and Slots in QML
  • QtQuick Controls
  • Modules
  • User Interaction
  • Mouse Input
  • Touch Input
  • Keyboard Input
Animations, States and Transitions
  • Animations
  • Easing Curves
  • Animation Groups
  • States and Transitions
  • States
  • State Conditions
  • Transitions
Under the Hood - the Qt C++ Layer
  • Integrating QML with C++
  • Declarative Environment
  • Exporting C++ Objects to QML
  • Exporting Classes to QML
  • Using Custom Types
  • Plug-ins
Miscellaneous Topics
  • Presenting Data (QML)
  • Arranging Items
  • Data Models
  • Using Views
  • XML Models
  • Views Revisited
  • Graphics Effects
  • Canvas
  • Particles
  • Shaders
  • MultiThreaded Programming
  • Qt Multithreading
  • Thread Synchronization and Primitives

Mandatory computer requirements

Register

< Back to full list of training

Programming with Qt for Embedded Devices - Early Bird pricing extended!

Dates:
Location: Waltham, MA
Early Bird Pricing: $2,495*
Regular Price: $2,995*
Register

Course Description

This 5-day course focuses on developing modern applications for embedded systems and touchscreens using Qt and QtQuick. The class utilizes real development boards with touchscreens for each participant and introduces students to working with embedded touchscreen systems. Further, fundamentals of programming with Qt will be covered to give participants a thorough understanding of the underlying ideas of QML and QtQuick. Efficient and robust design of applications for touchscreen enabled devices utilizing the latest QtQuick techniques is the central focus of this class. As such, architectural considerations for creating applications consisting of beautiful and highly responsive presentation layers, backed by solid back-end implementations are important learning goals for participants.

In the course, we will use the Raspberry Pi embedded system and a multi-point touchscreen. After the class, you may keep the board and touchscreen for a discounted fee of $172.50 plus tax. This is optional and we will loan you a touchscreen and board at no extra charge if you prefer.

 

Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Course Outline

Qt Fundamentals
  • Core Classes
  • String Handling
  • Container Classes
  • File Handling
  • Command Line Parsing
  • Lab: File I/O, Text Manipulation, and Command Line Parsing
  • Objects
  • Qt's Object Model
  • Variants
  • Properties and MetaProperties
  • ANSI-Style Typecasts
  • Signals & Slots
  • QTimers
  • Event Handling
  • QApplication, Resources, etc..
Introduction to QML and Qt Quick
  • Introduction to Qt Quick
  • Qt Creator
  • Qt Quick Hello World
  • QML Concepts
  • Composing User Interfaces
  • Nested Elements
  • Graphical Types
  • Text Items
  • Anchor Layout
  • QML Components
Qt Quick Structures and User Interaction
  • Qt Quick Structures
  • Components
  • Signals and Slots in QML
  • QtQuick Controls
  • Modules
  • User Interaction
  • Mouse Input
  • Touch Input
  • Keyboard Input
Animations, States and Transitions
  • Animations
  • Easing Curves
  • Animation Groups
  • States and Transitions
  • States
  • State Conditions
  • Transitions
Under the Hood - the Qt C++ Layer
  • Integrating QML with C++
  • Declarative Environment
  • Exporting C++ Objects to QML
  • Exporting Classes to QML
  • Using Custom Types
  • Plug-ins
Miscellaneous Topics
  • Presenting Data (QML)
  • Arranging Items
  • Data Models
  • Using Views
  • XML Models
  • Views Revisited
  • Graphics Effects
  • Canvas
  • Particles
  • Shaders
  • MultiThreaded Programming
  • Qt Multithreading
  • Thread Synchronization and Primitives

Mandatory computer requirements

Register

< Back to full list of training

Programming with Qt for Desktops - early-bird pricing extended!

Dates:
Location: Sunnyvale, CA
Early Bird Pricing: $2,495
Regular Price: $2,995
Register

Course Description

This is a 5-day, in-depth introduction to Qt programming, primarily focusing on using Qt Widgets and the associated development tools (Qt Designer, Qt Creator and friends). Students will experience the challenges of cross-platform development with exercises that involve porting applications from Windows to MacOS (or vice versa).

Course Availability: On-site, Open Enrollment
Subject: Qt
Duration: 5 days

Course Prerequisites

  • Working knowledge of C++ programming
  • Basic knowledge of GUI programming
  • Previous Qt experience is not required

Course Learning Objectives

  • A working knowledge of the capabilities and limitations of Qt
  • Experience in programming with Qt
  • Course slides and sample programs

Course Outline

Qt Core and Widgets

Qt Fundamentals

Fundamentals of Qt
  • The Story of Qt
  • Developing a Hello World Application
  • Hello World Using Qt Creator
  • Practical Tips for Developers
Objects and Core Types
Core Classes
  • String Handling
  • Container Classes
  • File Handling
Objects
  • Qt's Object Model
  • Variants
  • Properties
Object Communication
  • Signals & Slots
  • Event Handling
Widgets and Designer
Widgets 
  • Designer Introduction
  • Common Widgets
  • Layout Management
  • Guidelines for Custom Widgets
Dialogs 
  • Dialogs
  • Common Dialogs
  • Designer Forms and Code Integration
Applications and Painting
Application Creation
  • Main Windows
  • Designer: Main Windows, Menus, and Actions
  • Settings
  • The System Clipboard
  • Drag and Drop
  • Resources
  • Translation for Developers
  • Deploying Qt Applications
Painting and Styling
  • Painting on Widgets
  • Color Handling
  • Painting Operations
  • Style Sheets
Models and Views
Model/View
  • Model/View Concept
  • Showing Simple Data
  • Proxy Models
  • Custom Models
Model/View II
  • Delegates
  • Editing Item Data
  • Data Widget Mapper
  • Drag and Drop
  • Custom Tree Models
Graphics View
Graphics View
  • Using GraphicsView Classes
  • Coordinate Systems and Transformations
  • Creating Custom Items
Graphics View 2
  • Widgets in a Scene
  • Drag and Drop
  • Effects
  • Performance Tuning
Other Topics
Animation
  • Starting Animation
  • Animation Groups
  • States and Animations
  • Events and Transitions

Qt Additional Models

MultiThreaded Programming and Multimedia in Qt
Multithreaded Programming
  • Qt Multithreading
  • Threading Primitives
  • QtConcurrent
Multimedia Programming
  • Qt Multimedia
Inter-Process Communication
  • QProcess
  • Shared Memory with Qt
  • Network Programming
  • QNetworkAccessManager Request/Reply
  • Bearer Management API
  • TCP/UDP Sockets
  • SSL Sockets
  • DNS and Proxies
  • QtDBus - Qt Bindings to D-Bus
  • QtDBus - Advanced Topics
Other Topics
Extending Qt with Plugins
  • Qt Plugins
  • Plugin Example: Custom Image Formats
Data Processing
  • Basic XML APIs
  • SQL Database API
  • SQL Models
XML Patterns
  • XPath, XQuery, and XSLT
  • QtXmlPatterns
  • XML Schema

Click here for mandatory computer requirements

Register

< Back to full list of training