I know this question has been asked before, but I thought if I explained my own scenario I might get more helpful answers. Plus, I'm new to Qt, so I have a few additional questions as well. I recently took up Qt for cross platform UI development, but became frustrated when deciding between QtQuick and Qt Widgets. I'm looking to build a desktop application with smooth animations, written entirely (or mostly) in C++, and deployable without the need to install a framework.

I like QML due to its similarity to WPF, but quickly realized its more geared towards mobile platforms. I found that all textareas hid the standard 'I' cursor, and I couldn't even select text with my mouse. The text areas, as far as I could see, didn't even have a background property. I also found that by default, onClick events and such are encouraged to be written in Javascript, not C++. Yet, I find it very easy to create animations in QML.

Qt Widgets, on the other hand, I read is more geared towards the desktop, but I fear it will be like WinForms and the animations will be complex and jotty, and there is no easy way to implement animations in Qt GUI.

I also read that Qt Widgets is compiled, yet QML is interpreted by the framework at runtime. Is this true? I figured out how to statically link Qt to my projects, but I'm still not sure this fixes anything in the QML regard. From what I've tried, I think QML is still interpreted at runtime. I also read it can be slower, too.

In your experience, which do you think I should go with? Any help is appreciated. Thanks!

1 solution

Solution 1

If you're definite about desktop only and you're definite about Qt and animation is the focus of what you're doing then have a look at Qt's OpenGL support. It's integrated with Qt Widgets on the desktop so you'd mostly be using those but the OpenGL support is additional and last I saw quite impressive. My Qt is a little out of date but I doubt they've taken it out perhaps just stopped shouting about it.