Quote Originally Posted by Abdeljalil View Post
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.
You could have a look at QtQuick.Controls. There are good and bad sides to it but if you don't need custom widgets based on regular widgets then it should be sufficient for you.

I also found that by default, onClick events and such are encouraged to be written in Javascript, not C++.
You can expose any QObject-based C++ object to QML and call its slots from QML event handler.

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.
It's not that bad. There is the Animation Framework available (have a look at QPropertyAnimation as already advised) and if you really really want then you can expose your widgets to a QML engine and implement the animations there. However the latter requires some knowledge on QML itself.

I also read that Qt Widgets is compiled, yet QML is interpreted by the framework at runtime. Is this true?
Partially. First of all there is a compiler available for QML in the commercial package which parses the documents at compile time and generates binary code for it. Second of all, AFAIK, QML engine is JIT-enabled which means that once objects are created and script is parsed, the engine can compile parts of the script on the fly to binary form and execute them just like it executed regular C/C++ code. JavaScript itself yields a number of other optimizations which allow you to write code which is more efficient than C++ and allows the engine to execute it more efficiently than it would run a precompiled function. So all in all performance depends on what you do in the script and how you do it.

I figured out how to statically link Qt to my projects, but I'm still not sure this fixes anything in the QML regard.
Statically compiling a program may only reduce its load time but it has no influence on performance once the program starts executing.

In your experience, which do you think I should go with? Any help is appreciated. Thanks!
It really depends WHAT you want to do and what your requirements are. If you want a fairly static and complex regular UI then it will be easier to do it in C++ even if you have to imperatively program all the animations as you will avoid having to learn QML. If you are worried about computation efficiency then you should certainly implement computation-intensive parts in pre-compiled language and the technology used for other parts of the program will again depend on the remaining aspects of your requirements. If you want a highly dynamic UI which at the same time is not very complex and you are not afraid of spending time to learn a new tool then I'd give QtQuick a try.