Why I’ve moved to Qt

It is cute (some pronounce Qt like so), portable, efficient, incredibly powerful and it is written in standards compliant C++. That is why I’m using Qt, in a nutshell.

What I used before Qt

I’ve used C++ for programming since a very young age. I have, however, never used it for building GUI-based applications before. C# and .NET have been the go-to resource for me for building GUI applications and front-ends to my more powerful and performance tweaked C++ programs.

Why I’ve moved to Qt

There was no driving force for moving to Qt other than my love for C++ and years of experience in using it. I’ve always enjoyed having the same user experience on all the popular platforms when looking at applications such as Mozilla Firefox or Google Chrome. But how do they manage to keep their code portable and the user interface the same?

I started looking at different user interface frameworks and stumbled upon Qt.

What first caught my attention

  • Qt has a massive community
  • Open source license
  • Elaborate documentation
  • C++!!
  • Cross platform (even Android, iOS and BlackBerry OS 10)
  • User friendly development tools (QtCreator)

Why not stick with what I am used to

The need to maintain cross platform code was growing troublesome. I’ve used Mono to bridge the gap between Windows and Linux, but still some aspects weren’t as portable as I would have liked. Also with the mobile platform becoming of note, I needed to make a choice that could save a lot of development time.

Qt also comes with a myriad of libraries and tools, from smart pointers and containers to language translation.

.NET provided a neat way of writing markup with XAML. Qt has its own with even more power called QML.

Any Caveats?

In all honesty, the biggest problem I’ve faced is deciding between a purely QtQuick solution or a hybrid between QtWidgets and QtQuick. I can hardly call this a problem actually.

Also, writing custom models for views do have a steep learning curve.

Conclusion

I just wanted to share why I’m using Qt in a short post. Please go check out Qt and see for yourself the power that it possesses.

Any comments on if/how you are using Qt?

6 Replies to “Why I’ve moved to Qt”

  1. Hi Pieter,

    believe me, after many search, this is the best, clear anb concise opinion I have found!

    I’m in the situation where I have to choose between WPF or Qt/QML for a middle-big and long term project.

    Of course I’m inclined to adopt Qt but I have to validate my choices…

    I’m a c++ developer but I never work in Qt before so my decision points are:

    – is the learning curve very steep?
    – is easy to change/adapt views in a MVC project?
    – I read that QML is more to the smartphone side than to the desktop one, is it true?

    Thanks for your post!

    1. Hi Barzo

      Thanks for your kind words.

      Regarding your questions:
      – The learning curve is not so steep. Concise tutorials are available and a lot of resources are available online.
      -A lot of Qt’s examples are MVC-like so I am sure you will be able to conform to their MVC style.
      -I believe it is a misconception that QML is more for smartphones. That is like saying HTML/CSS/JS is only for web development, but projects like Cordova prove that wrong. QML is fully integrated with the C++ side of the code and there is also a desktop controls project which brings most of the Qt Widgets to the QML domain. I personally believe QML can be used to make great enterprise desktop applications. Besides with the latest release of Qt you can use standard widgets alongside QML modules.

      Furthermore, WPF forces your market to only Windows clients. Qt allows you to develop for all modern desktop operating systems, but also the most popular mobile platforms.

      To me that is a no brainer – one tried and tested (and enterprise backed) cross platform solution.

      I hope this answered your questions? Please feel free to contact again.
      Thanks for your comment

  2. Hi Pieter,

    wow, this is what I call “very quick reply”, thanks a lot! 😉

    I agree with you over all points!

    Of course, since it is a very stable and robust framework I have no fear to dive into also with no knowledge, furthermore the portability nowadays I think should be a mandatory requirement!

    Thanks again for you answers!

    Cheers,
    Daniele.

Leave a Comment