Programming with Qt/Widgets [2017 Class Archive]

“Programming with Qt/Widgets” (Qt is pronounced “cute”) is a two-day training course taught by Giuseppe D’Angelo of KDAB. It is offered at the Meydenbauer Conference Center from 9AM to 5PM on Saturday and Sunday, September 23rd and 24th, 2017 (immediately prior to the conference). Lunch is included.

Course Description

This course is a hands-on introduction to the world of creating first class desktop/workstation user interfaces using Qt, taught as a combination of lectures, demos, and practical exercises.

Qt is a C++ application development framework which is collaboratively developed by numerous companies and individual professionals.

In addition to providing desktop-oriented QtWidgets UI technology, it also provides a set of modules for network programming, multithreading, database access and so on. All these modules are optional. They are contained in the standard Qt download packages but can be used at the application developer’s discretion.

This two day course focuses on the use of the QtWidgets module to create user interfaces for desktop programs, whether the platform is Windows, OS X or Linux.

QtWidgets is used across industries for commercial and open source end user software, in-house administration tasks, scientific visualization, engineering workstations and much more.

This course covers:

  • how to set up Qt desktop application projects
  • creating application windows with menus, toolbars, etc.
  • creating components that dynamically respond to changing size requirements
  • creating custom components
  • presentation of data through a model/view framework


This course includes exercises. So bring your laptop and your favorite development environment or use this as an opportunity to try the Qt Project’s QtCreator IDE.

Course Topics

  • The Qt object system
    • Object communication using signal/slots
    • Event handling
  • Widgets
    • Common widgets
    • Dynamic layout
    • Custom components
    • Painting
  • Application windows
    • Toolbars
    • Menubar, menus, and context menus
    • Dockable sub windows
  • Dialog
    • Standard dialogs
    • Native dialogs
    • Custom dialogs
  • Model/View based data presentation
    • Custom models
    • Custom delegates
  • Qt development tools
    • QtDesigner (visual widget editor)
    • QtCreator (IDE)
    • QMake (build system generator)
    • QtTest (Qt unit test framework)

Course Instructor

Giuseppe D'Angelo

Giuseppe D’Angelo is a software Engineer at KDAB. Giuseppe is a long time contributor to Qt, having used Qt and C++ since 2000, and he is an Approver in the Qt Project. His contributions in Qt range from containers and regular expressions to GUI, Widgets, and OpenGL. A free software passionate and UNIX specialist, before joining KDAB, he organized conferences on open source around Italy, especially about Perl. He holds a BS in Computer Science.