“Closing the Gaps – QML on Desktop”

  by Prashanth Udupa

Abstract

QML can be used for desktop apps, but for someone who has been using widgets all along gaps are easily visible. In this talk, I hope to highlight some of the gaps and share ideas for closing them.

Building on the Qt Desktop Days 2020 talk on “Insights From Building Desktop App Using QML”, this year I want to share more insights and learnings, specifically with respect to optimising QML on the desktop.

Over the last 6 months, the Scrite project encountered some interesting problems and came up with new and unique solutions. In this talk I want to share my experience about enjoying the problems and coming up with solutions.

– Using model-view for capturing and rendering nodes & edges of force directed graphs
– Keeping scrolling smooth in a ListView when its delegates are heavy
– Handling tab sequences effectively in Scrite? (I confess, I simply can’t understand what FocusScope actually does.)
– Print Preview in QML (of QTextDocument with header & footer), if we don’t want to use QPrintPreviewWidget or QPrintPreviewDialog
– Using KDE5’s Sonnet on a separate thread for checking spellings on text in QML’s TextEdit
– Provide auto-completion popups for TextField and TextEdit components in QML.
– Mashing up data from multiple models on a single view
– Building a tab for synchronized playback of film and screenplay using Qt’s Multimedia module

Through this talk, I also want to invite contributions from the audience to solve some of these problems with me and help create tools, techniques, and design patterns for solving unique problems when it comes to using QML on the Desktop.

About the speaker

Prashanth has been developing software using Qt since 2001. He bootstrapped and ran a services & products company based on Qt in India for 12 years. Then, he co-founded TERIFLIX, a startup in Bengaluru India focussed on offering private and social screening experiences of films. Since the pandemic broke, he has been developing Scrite a free and open-source screenwriting app for Linux, Windows and macOS desktops (www.scrite.io). Having used QML for developing the complete UI of Scrite, he is confident that QML is ready for building large desktop apps that would have traditionally been built using Widgets.