Programming with Qt for Desktops

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
Download Course Description
Tags:
Qt