Location: Denver, CO
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