Insights From Building A Desktop Productivity App Using QML

Presented by Prashanth Udupa

Abstract

Scrite is a free and open-source screenplay writing app for Linux, macOS, and Windows Desktops.

I have been developing desktop apps using Qt since 2001. As a long time QtWidgets user, I had discarded QML as a viable desktop UI development tool when it was first announced around 2011.

However, having used QML even within desktop apps over the past few years – I am convinced that QML can be used for building large & beautiful desktop apps – even productivity apps!

I have discovered a handful of design patterns that one could leverage to build beautiful desktop apps using QML. In my talk, I wish to share some of these insights, specifically that

  • We have to breakdown everything into a model-view problem
  • We have to have mastery over the meta-object system
  • We have to get comfortable with creating new QML Attached Properties & Singletons
  • We need to pay attention to the fact that UI and Business Logic are in separate threads
  • We can use ScrollView+Flickable+Item+Repeater as a replacement for QGraphicsView
  • We may need to buckle up and subclass from QQuickItem occasionally
  • Using Loaders can help keep memory consumption in check
  • It pays to spend some time to learn using GammaRay. It can help bring you back from hell when things go wrong! I am not writing this simply because I am submitting a talk proposal to an event hosted by KDAB.
  • Lastly, you are likely to become a better software architect of QtWidgets apps.

Prashanth Udupa

prashanthudupa qt desktop daysI am a software developer from Bengaluru India. My love for Qt goes back to 2001 when I began using it for a college project. I started a product development & consulting company in 2005 where my team used Qt extensively. I am the author of opensource projects like VTK Designer, GCF, and now Scrite. I regularly consult large multinational companies on leveraging Qt for building large desktop products and conduct training programs on Qt for companies in India.

When India went into lockdown in March 2020, I began building a free and open-source app called Scrite to help me with that. Four months and ~50000 lines of code later, Scrite is at 0.4.14 Beta and is actively used by over 600 writers across the world. As a Qt Software Developer – I am personally very excited that the entire UI of the app has been developed using QML.

Links:
https://www.prashanthudupa.com
https://www.scrite.io
https://www.vcreatelogic.com

Video

Leave a Reply

Your email address will not be published. Required fields are marked *