Contact Us

Contact us

Submit a contact request

Call us

We have Sales offices around the world

Training and Events

Learn about Qt for application development, UI design, and  embedded device creation from The Qt Company and Qt ecosystem partners. 

Using the event filters below, you can find on-demand webinar videos from past events, as well as upcoming live webinars. You can also search using topic tags and other event types, such as training and trade shows, or by organizer — whether it be The Qt Company or a Qt partner.

Loading Events

« All Events

  • This event has passed.
embeded-card-image-1

Effective QML (Sunnyvale, CA)

7 March - 9 March

$1995

This 3-day course focuses on design patterns and best practices to use when creating applications with QML user interfaces. Entering as intermediate QML programmers, students will leave with the knowledge of when to use various QML constructs in the best manner. This course focuses heavily on applications that are driven by C++ backends.

Students will learn to create QML that is more declarative, maintainable and testable. The students will also learn about optimizing for startup and runtime performance as well as memory consumption.

Course Availability: On-site, Open Enrollment
Duration: 3 days
Course Prerequisites

  • Basic knowledge of programming with Qt on the desktop using widgets
  • Basic QML experience

 

Course Outline

Day 1

Course Introduction

  • Welcome and Introductions
  • Agenda
  • Logistics

 

Review of Important Qt Concepts 

  • Qt PropertiesCombination of Get/Set/Notify
    • Declaration of a Qt Property
    • Qt Property with Enum
    • Getting & Setting Qt Properties
    • Dynamic Properties

 

Building Blocks of QML

  • Introspection
  • Meta Object Compiler (MOC)
  • QQuickItem
  •  QVariant
    • QVariant and QML
  • QVariant Containers
    • QVariantList
    • QList
    • QQmlListProperty
  • Qt C++ Layer

 

Layered Design

  • Introduction to Layered Design
  • Building an Application as a Library

 

Questions and Answers Session

 

Lab 1

Day 2

Review and Solution of Lab 1 

 

Extending/Creating New Items

  • Dividing Code (QML) into Components
    • Creating New Items (Create New .qml File)
  • Alias Properties
  • Property Scope
    • Public Scope
    • Private Scope
    • Example: Public Members,  Private Member
    • Private Properties
    • Avoid Inheriting Public Members

 

Dynamic Creation of Items

  • Creating Items DynamicallyProcedural Method
  • Declarative Method
  • Procedural Creation
  • Procedural/Declarative Creation
  • Declarative Creation
  • Creating Multiple Items
  • Repeaters

 

Questions and Answers Session

 

Lab 2

 

Day 3

 

Review and Solution of Lab 2

User Input

  • Keyboard Navigation and Focus
  • Input Focus
    • Focus Order
    • Focus property
    • Active Focus
    • FocusScope
  • Handling Keyboard Input
    • Key-Specific Handlers
    • All Keys Handler
    • Key Event Propagation
    • Event Propagation is Convenient
  • Multi-Touch
    • Common Multi-Touch Gestures
    • Handling Overlapping Touch Areas
  • Mouse/Single-Touch
    • Tap
    • Double-Tap
    • Tap and Hold

 

QQmlFileSelector

  • Basic Selector Concept
  • Automatic Selectors
  • Custom Selectors
  • Custom Selectors via Environment
  • Conflict Resolution Order
  • Asset Management

 

Testing

  • QTest Framework in QML
    • Overview
    • Adding a Test Suite
    • Implementing a Test
    • Add a Testing Main()
    • Running the Test
    • Simulating GUI Events
    • Mocking C++ Classes with QML
    • SignalSpy
  • Design for Testability

 

Course Wrap-up

  • Summary of Key Points
  • Where to Get More Information and Help
    • Examples and Reference Materials Included with Course Materials
    • Pointers to Other Materials & Other ICS Classes
  • Optional Take Home Lab
  • Questions & Answers

 

Note: This course is being conducted by ICS, a certified Qt Partner.

 

Details

Start:
7 March
End:
9 March
Cost:
$1995
Event Category:
Event Tags:
, , , , ,

Organizer

Organizer:
The Qt Company & ICS

Other

Please contact us if you have any questions.