Skip to content

TestMyQt/material

Repository files navigation

Qt MOOC material

Here is a brief summary of the topics of the course.

Introduction - Introduction to the course

  • Everything required for starting the course
  • Workspace setup
  • Documentation
  • Help channels
  • Workflow introduction
  • Course tools introduction

Part 1 - Qt Essentials

  • Introductory topics:
  1. Creating and debugging Qt projects
    Hello world!
  2. String handling and value types
    Basic string manipulation (min: QString + QChar + QCodec, creating, concatenation + light-weight use with QLatin1String
  3. Item Containers
    Adding, iterating, manipulating data in item containers
  4. QObject - Subclassing
    Custom QObjects with properties, enums
  5. Parent-Child relationship
    Qt memory management with object trees
  6. Object Communicating: Signals and Slots
    Observer pattern: Object communication with signals and slots
  7. Object Communicating: The differences between queued connections and direct connections
    The differences between queued connections and direct connections
  8. Object Communicating: Event Handlers
    Customising event handling
  9. Object Communicating: Custom Events
    Custom events and event handling
  10. Smart Pointers - QPointer, QScopedPointer
    Memory management with Qt smart pointers
  11. Shared Pointers
    Managing object copies with shared pointers (does not have to be between threads)
  12. Streaming
    Meta-type system, File I/O
  13. Implicitly Shared Custom Type
    Copy-on-write pattern in value objects, implicit sharing
  • Short basic assignments that account for 50%ish of the assignments of the week
  • One bigger assignment completed step by step trough implementing the required topics of learning from Week 1 resulting in a complete application

Part 2 - Qt Quick UI:s

  • User Interface creation using Qt Quick:
  1. QML Hello World
    Hello world v2! To be able to develop, build and run a simple QML application
  2. Rectangle, Image, BorderImage, Text
    Basic QML items
  3. Key Handling
    Controlling focus and handling key presses
  4. Mouse Handling
    Mouse handling with MouseArea
  5. Gestures
    Swipe, flick and pinch handling
  6. Handlers
    Handling multiple touch events in a single item
  7. Positioners
    Grouping items with positioners
  8. Anchors
    UI scaling with anchors
  9. Components: Properties, Signals
    Creating components and component interfaces
  10. Re-usable Components
    How to create good, re-usable components
  11. Qt Quick Controls
    The Qt Quick Controls module
  12. Global Object
    What is a global object?
  13. Behavior
    Basic animation
  14. Nested Animations
    Creating eye candy with nested animations
  15. State Machines
    Fluid UI with state machines and animations
  16. Graphics Effects
    Basic ready-made eye candy
  17. Basic Particle System: Emitter, Particle
    Eye candy with particle effects
  • Short basic assignments that account for 50%ish of the assignments of the week
  • TBA

Part 3 - Data-centric Apps

  • Manipulating and presenting data using QML:
  1. List model manipulation
    Basic QML model and JS manipulation
  2. XML List Model
    XML parsing in QML
  3. Hierarchical Models
    Tree model
  4. ListView vs TreeView
    List vs Tree
  5. Standard Item Model
    Model/View framework basics
  6. Custom Table Model
    Advanced Model/View
  7. Basic Delegate
    TBA
  8. Grid vs TableView
    Use Cases
  9. Dynamic Delegate - Loader
    Good delegate implementation
  10. Charts
    TBA
  11. Data Visualization
    TBA
  • Short basic assignments that account for 50%ish of the assignments of the week
  • TBA

Part 4 - C++ and QML

  • Combining C++ with QML:
  1. Context Properties
    How to communicate between C++ and QML
  2. Context Objects
    TBA
  3. Calling QML from C++ and vice versa
    TBA
  4. Registration
    TBA
  5. QML Plugins
    Right way of doing registration
  6. Custom QObjects
    Deriving good types for QML
  7. QPainter
    TBA
  8. Custom Painted Items
    TBA
  9. Scene Graph Item
    TBA
  • Short basic assignments that account for 50%ish of the assignments of the week
  • TBA

Part 5 - Inter-Process Communication and Multitasking

  • Communication between processes and threads :
  1. JS Workers
    Worker limitation
  2. List Manipulation
    Worker use case
  3. QtConcurrent
    TBA
  4. Container Manipulation with QtConcurrent
    TBA
  5. QRunnable
    TBA
  6. Thread Affinity
    Right way to handle threads
  7. Sync/Mutual Exclusion
    TBA
  8. Thread Cleanup
    Good practices
  9. Inter-Thread Communication
    TBA
  10. IPC: Shared Memory
    TBA
  11. IPC: File Watcher
    TBA
  12. IPC: Remote Objects TBA
  • Short basic assignments that account for 50%ish of the assignments of the week
  • TBA

Part 6 - Application Engine

  • TBA:
  1. Plugins
    TBA
  2. XML and JSON Handling
    TBA
  3. Networking
    TBA
  4. Bluetooth?
    TBA
  5. Sensors
    TBA
  6. Maps Routing
    TBA
  7. Media Player
    TBA
  8. Subtitles
    TBA
  9. SQL Databases
    TBA
  10. Webengine
    TBA
  11. Hybrid Apps
    TBA
  • Short basic assignments that account for 50%ish of the assignments of the week
  • TBA

Part 7 - TBA


Here are our plans and outlines for the Qt Mooc course materials.

This is the original material outline repository which contains the work in progress that is the Qt Mooc course material.
These pages are used for content creation and do not in all cases represent a finished product. In most cases they represent a construction site where we recommend you take the stairs, instead of the elevator. The elevator will be implemented in 2020. This is also the repository where the completed course exercises can be found.

https://github.com/TestMyQt/material-outline/wiki

About

Material for the Qt MOOC course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages