A Book about Qt5¶

Last Build: December 07, 2020 at 10:50 CET

Fork me on GitHub

Welcome to the online book of Qt5 Cadaques! Why Qt5? Because Qt5 is awesome! Why Cadaques? Because one of the authors had a great holiday in this rocky coastline in the north-east of Spain.

The entire collection of chapters covering Qt5 programming, written by Jürgen Bocklage-Ryannel and Johan Thelin, is available here. All book content is licensed under the Creative Commons Attribution Non-Commercial Share Alike 4.0 license and examples are licensed under the BSD license.

Personal Note

Jürgen Ryannel, the lead author has stopped working in his normal job and is bootstrapping a new company called ApiGear, which is all about API architectures. While the company is slowly forming, Jürgen is available for freelancing, ideally in the area of UI creating using QML or UI Architecture coaching. You can reach him via LinkedIn.

/ jryannel

Enjoy!

Content

  • 1. Meet Qt 5
    • 1.1. Preface
    • 1.2. Qt 5 Introduction
    • 1.3. Qt Building Blocks
    • 1.4. Qt Project
  • 2. Get Started
    • 2.1. Installing Qt 5 SDK
    • 2.2. Hello World
    • 2.3. Application Types
    • 2.4. Summary
  • 3. Qt Creator IDE
    • 3.1. The User Interface
    • 3.2. Registering your Qt Kit
    • 3.3. Managing Projects
    • 3.4. Using the Editor
    • 3.5. Locator
    • 3.6. Debugging
    • 3.7. Shortcuts
  • 4. Quick Starter
    • 4.1. QML Syntax
    • 4.2. Basic Elements
    • 4.3. Components
    • 4.4. Simple Transformations
    • 4.5. Positioning Elements
    • 4.6. Layout Items
    • 4.7. Input Elements
    • 4.8. Advanced Techniques
  • 5. Fluid Elements
    • 5.1. Animations
    • 5.2. States and Transitions
    • 5.3. Advanced Techniques
  • 6. Qt Quick Controls 2
    • 6.1. Introduction to Controls
    • 6.2. An Image Viewer
    • 6.3. Common Patterns
    • 6.4. The Imagine Style
    • 6.5. Summary
  • 7. Model-View-Delegate
    • 7.1. Concept
    • 7.2. Basic Models
    • 7.3. Dynamic Views
    • 7.4. Delegate
    • 7.5. Advanced Techniques
    • 7.6. Summary
  • 8. Felgo
    • 8.1. Why choose Felgo?
    • 8.2. Installing Felgo
    • 8.3. Hello World with Felgo
    • 8.4. A Messaging App
    • 8.5. Advanced Topics
    • 8.6. Summary
  • 9. Canvas Element
    • 9.1. Convenient API
    • 9.2. Gradients
    • 9.3. Shadows
    • 9.4. Images
    • 9.5. Transformation
    • 9.6. Composition Modes
    • 9.7. Pixel Buffers
    • 9.8. Canvas Paint
    • 9.9. Porting from HTML5 Canvas
  • 10. Particle Simulations
    • 10.1. Concept
    • 10.2. Simple Simulation
    • 10.3. Particle Parameters
    • 10.4. Directed Particles
    • 10.5. Particle Painters
    • 10.6. Affecting Particles
    • 10.7. Particle Groups
    • 10.8. Summary
  • 11. Shader Effects
    • 11.1. OpenGL Shaders
    • 11.2. Shader Elements
    • 11.3. Fragment Shaders
    • 11.4. Wave Effect
    • 11.5. Vertex Shader
    • 11.6. Curtain Effect
    • 11.7. Qt GraphicsEffect Library
  • 12. Multimedia
    • 12.1. Playing Media
    • 12.2. Sound Effects
    • 12.3. Video Streams
    • 12.4. Capturing Images
    • 12.5. Advanced Techniques
    • 12.6. Summary
  • 13. Networking
    • 13.1. Serving UI via HTTP
    • 13.2. Templating
    • 13.3. HTTP Requests
    • 13.4. Local files
    • 13.5. REST API
    • 13.6. Authentication using OAuth
    • 13.7. Web Sockets
    • 13.8. Summary
  • 14. Storage
    • 14.1. Settings
    • 14.2. Local Storage - SQL
    • 14.3. Other Storage APIs
  • 15. Dynamic QML
    • 15.1. Loading Components Dynamically
    • 15.2. Creating and Destroying Objects
    • 15.3. Tracking Dynamic Objects
    • 15.4. Summary
  • 16. JavaScript
    • 16.1. Browser/HTML vs QtQuick/QML
    • 16.2. The Language
    • 16.3. JS Objects
    • 16.4. Creating a JS Console
  • 17. Qt and C++
    • 17.1. A Boilerplate Application
    • 17.2. The QObject
    • 17.3. Build Systems
    • 17.4. Common Qt Classes
    • 17.5. Models in C++
  • 18. Extending QML with C++
    • 18.1. Understanding the QML Run-time
    • 18.2. Plugin Content
    • 18.3. Creating the plugin
    • 18.4. FileIO Implementation
    • 18.5. Using FileIO
    • 18.6. Summary
  • 19. Felgo Plugins and QML Hot Reloading
    • 19.1. Tooling
    • 19.2. Felgo Plugins
    • 19.3. Monetization, Ads and In-App Purchases
    • 19.4. Notifications
    • 19.5. Analytics and Crash Reporting
    • 19.6. Firebase: Authentication, Databases, and Storage
    • 19.7. Cloud Storage, Augmented Reality, and More
    • 19.8. Felgo & WebAssembly
    • 19.9. Summary
  • 20. Qt for Python
    • 20.1. Introduction
    • 20.2. Installing
    • 20.3. Building an Application
    • 20.4. Limitations
    • 20.5. Summary

Assets

The assets contain all files for reading the book offline and also the chapter examples as a downloadable format.