Training


 

Preconference training presented by Platinum Sponsors, ICS and KDAB


Choose from 8 options:

Training Overview

The Course

This training gives an introduction to various tools, which help developers and testers in finding bugs and performance issues.

The tools presented cover a wide range of problems, from general purpose debugging and CPU profiling to Qt specific high-level analyzers. Often, it is relatively simple to run a tool, but interpreting the results, or even just using some of the more advanced tools, requires deep technical knowledge.

The following tools will be covered:

Debugging:

  • General purpose debuggers: GDB, LLDB, Windows debugging tools
  • Memory error detectors: valgrind’s memcheck, Dr memory, AddressSanitizer
  • OpenGL: apitrace
  • Various Qt built-in features for logging, QML
  • GammaRay to investigate internals of Qt Applications

Profiling:

  • CPU: valgrinds’s callgrind, Linux perf, Intel VTune Amplifier, Instruments, Visual Studio
  • Heap memory: valgrind’s massif, heaptrack, Instruments, Visual Studio
  • OpenGL: apitrace, NVidia nSight, AMD CodeXL, Vivante vProfile

Testing:

  • Qt TestLib: unit tests and benchmarks
  • Static code analysis
  • Code coverage

For: Developers who want to find and fix problems

Prerequisites: To know the basics of C++, Qt and QML

Speaker: Thomas McGuire, Senior Software Engineer & Consultant, KDAB

Senior Software Engineer, consultant and trainer at KDAB, Thomas works on both widget-based and QtQuick-based projects, with a focus on embedded. He has actively developed with Qt since 2006 and is a contributor and approver in the Qt project. Thomas has contributed to the KDE project, mainly to the KDE PIM applications and libraries, and was maintainer of the KMail application. He has been a speaker at conferences like KDE’s Akademy and Qt Developer Days. Thomas holds an MSc in Computer Science. Thomas speaks English and German.

The Course

This training is targeted at people who are interested to combine the new features of C++11/C++14 with Qt5 (and, to a lesser extent, Qt 4.8). It will teach you all about the new C++11/C++14 features, but also throws in Qt-specific information, including how to structure your code so that a simple recompile with a C++14 compiler will make your applications both faster and use less memory.

For: C++ developers who want to upgrade their C++ skills

Prerequisites: To know the basics of C++ (the old standard). More advanced topics will be explained as needed. Knowing the basics of Qt is beneficial, but not required.

Speaker:Mike Krus, Senior Software Engineer, KDAB

Senior Software Engineer at KDAB UK, Mike has been developing with C++ since 1996 and Qt since 2004. He has a broad range of experience in scientific applications, mainly in civil engineering and oil & gas industries. His range of expertise includes C++, QML and interactive 3D visualization software design on desktop and mobile as well as MacOS development. He is very interested in building mobile applications with Qt, mainly on iOS. Mike has a PhD in Computer Science.

The Course

Qt 5.7 introduces the powerful new Qt 3D module that can be used to integrate 3D content into your Qt applications using C++ or QML. In fact, Qt 3D provides an extensible framework for soft realtime simulations, of which rendering is just one aspect. This 1 day training will introduce you to Qt 3D's features and APIs, show what you can achieve with them, and how Qt 3D can be extended by the user and by the Qt 3D authors in the future.

Along the way we will introduce the Qt 3D renderer and input systems and how they are built on top of a flexible, highly threaded, Entity Component System (ECS) architecture that scales very well and is ripe for future additions. You will learn:

  • How to construct a basic Qt 3D application
  • About Transform hierarchies and Entities and Components to make a scene graph
  • How to display 3D graphical content using geometry, materials, textures
  • How Qt 3D maps onto the graphics pipeline
  • How to extend Qt 3D to use your own custom geometry
  • How to write custom materials and shaders
  • How to completely control the Qt 3D renderer dynamically at runtime using the Frame Graph
  • How to integrate Qt 3D with Qt Quick to provide a 2D user interface
  • How to handle advanced input with Qt 3D
  • Future plans for Qt 3D and how to extend it yourself

For: Developers or Managers wishing to get an idea of what Qt 3D is about and learn how to make some attractive applications with 3D content in the process.

Prerequisites: A basic understanding of QML is helpful. No prior OpenGL or 3D experience is required.

<

Speaker: Sean Harmer, Senior Software Engineer and Director of KDAB UK, KDAB

Dr. Sean Harmer is a Senior Software Engineer and Director of KDAB UK. He has been developing with C++ and Qt since 1998, and in a commercial setting since 2002. Sean has a broad range of experience and is keenly interested in scientific visualization and animation using Qt and OpenGL. Sean is the maintainer of the Qt3D module and an experienced trainer in OpenGL and Qt. He holds a PhD in Astrophysics along with a Masters in Mathematics and Astrophysics.

The Course

A key ingredient in successful software development is the separation of presentation and business logic. Everyone knows that. A larger part of most applications is a list of things, and for those, Qt offers such separation using a model/view framework.

This presentation will introduce this framework and tell you how to develop models independent of whether they are to be displayed in a C++/Qt application or in a Qt Quick application. This training will dive into subjects such as:

  • The API to implement for use in a 1 dimensional list, a 2 dimensional table and a tree view
  • What model indexes are all about
  • How to successfully implement a proxy model
  • How to debug your models
  • How to implement models in C++ that are displayed in Qt Quick.

For: Qt developers interested in model/view either from QML or from Qt Widgets

Prerequisites: A basic understanding of Qt.

Speaker: Jim Albamont, Senior Software Engineer, KDAB

Senior Software Engineer at KDAB. Jim has actively developed with Qt since 2001. He has a background in computer graphics and data visualization, including 6 years as the lead developer of a 3D visualization tool for financial data built with Qt and OpenGL. He holds an MSc in Computer Science and has held Qt training classes throughout the US.

The Course

This one-day course focuses on several of the more complex areas of QML and presents tips, tricks, best practices, and common areas of confusion and error. Instruction will be based on real-world experience developing customer applications for mobile, embedded and desktop.

Among the topics covered:

  • Integrating C++ and QML
  • Creating new QML types and modules
  • Leveraging states
  • Data models and views
  • Writing better declarative code
  • Dynamic item creation
  • Keyboard input handling
  • Lessons learned from real-world QML projects

Prerequisites: The course is for developers already familiar with the basic concepts of Qt and QML.

Speaker: Justin Noel, Senior Consulting Engineer, ICS

Justin is a Senior Consulting Engineer and Qt Certified Instructor at Integrated Computer Solutions, Inc. (ICS). He has taught Qt and Qt Quick/QML material to both public and corporate audiences for many years. He has also written and conducted seminars on object-oriented GUI design techniques. Justin has a degree in computer engineering technology from Northeastern University and enjoys gadget tinkering, fixing cars and playing hockey in his spare time.

The Course

The proliferation of tablets and smartphones has raised customers’ expectations of anticipated interaction with any device. If any system with a touchscreen is not as responsive a tablet, users are immediately disappointed. Every year, the bar is set higher and it is important to recognize that compared to desktop systems, users of these new touch-enabled devices have different goals and expectations. This full-day session for software developers will cover valuable User Experience (UX) concepts and techniques to consider before engaging in core development of an embedded systems application. We will present various scenarios and UX best practices, discuss User Interface (UI) prototyping and testing strategies, examine case studies and work through a design problem.

Speaker: Jeff LeBlanc, Director of UX, ICS

Jeff is the Director of User Experience (UX) at Integrated Computer Solutions, Inc. (ICS). A Qt Certified Trainer, Jeff has extensive experience developing custom Qt solutions with a strong focus on applying human-factor principles to user-interface design. He earned both a BS and MS in computer science from Worcester Polytechnic Institute (WPI), where he taught for years as an adjunct faculty member. In his free time Jeff enjoys kayaking, archery and hiking New Hampshire’s White Mountains with his rescue dog, Alex.

Speaker: Don Goetz, Senior UX Designer, ICS

Don Goetz is a Senior User Experience (UX) Designer at Integrated Computer Solutions, Inc (ICS). He has extensive experience in all aspects of the user experience design life cycle including wire-framing, user/usability testing, and heuristic analysis. He has worked on project for a variety of industries with a recent focus on designing for touch and "unconventional" interfaces. He earned his BS in Information Design and Corporate Communication from Bentley University. In his free time, Don is an avid board game enthusiast, enjoys playing soccer and bicycling, and loves to travel with his wife, Nikki.

The Course:
 
In order to achieve high quality applications during testing process all the 
functionality of the software shall be covered, including fully exercising GUI 
itself. For regression testing automating this process gives benefits, saving 
execution time and increasing accuracy. On the other hand, GUI Automation might 
be a challenge, as GUI may change significantly during a product life cycle. In 
this course we learn how to design and implement cross-platform automated tests 
using Squish GUI Tester for  Qt, QML & QtQuick applications that continue to 
work as your product evolves.
 
  • Introduction to GUI Testing
  • Squish Overview (installation, configuration)
  • Test Script Creation and Execution
    • Recording and Replaying Test Scripts
    • Verifcation Points (Properties, Screenshot, Visual)
    • Test Results and Logging
    • Squish API
    • Development of Test Cases at Business Level
  • Set-Up and Tear-Down Functions
  • Data-driven testing
  • Debugging Test Scripts
  • Object Recognition
  • Accessing Application Internals (Inspecting, Object Properties and Methods)
  • Synchronisation and Event Handling
  • Squish Command-Line Tools
  • Working with Multiple Applications
  • Hooking into Running Applications
  • Squish Integration with CI
 
Prerequisites: The course is for developers and testers already familiar the 
basic concepts of Qt
 
Speakers: Harri Porten, co-founder & co-CEO, froglogic and Tomasz Pawłowski, Consultant, froglogic
 
Harri is co-founder and co-CEO of froglogic - the maker of the GUI testing tool 
Squish and the code coverage tool Coco. Harri first got in contact with Qt 
through the Open Source KDE Community when maintaining an Internet dialer tool 
and authoring the JavaScript engine KJS. Later he worked as a Senior Software 
engineer for the original creators of Qt Trolltech.
 
Tomasz started the adventure with Squish and GUI Testing in 2011, designing and 
implementing automated tests for a Flight Planning solution at Lufthansa 
Systems. In 2014 he joined froglogic and is conducting Squish trainings and 
consulting for many companies in Europe and the USA. Tomasz has a degree in 
computer science from Nicolaus Copernicus University in Poland.

Secure your place and get your 3-day pass today         QtWorldSummit-registernow

Which training is right for you?

Not sure which training is right for you? Check out our suggested pairings!

New to Qt and already a developer:

Already a Qt developer:

This is a 3 day event starting with the pre-conference training day followed by two days of keynotes and breakout sessions covering everything from strategy planning and project management to deep technical dives into C++ libraries, APIs and UI development:

 

Opening hours  ›

Note:

You must purchase a Three-Day Combo Pass in order to register for training. Don’t forget to indicate your second choice when you register.

In the unlikely event that less than 10 people sign up for a particular training by September 21st, we will not run it. We will then offer you an alternative training or your money back.