4 ms·
The old QtDesigner was simple enough. If you want to create classic desktop applications, use it. QML is closer to a game engine than a widget toolkit. It is i
by Elv13 8y ago
The old QtDesigner was simple enough. If you want to create classic desktop applications, use it.
QML is closer to a game engine than a widget toolkit. It is intended to provide an easy way to animate everything and create custom looks. It feel alien for a few months before you "get it". It is very powerful and easy to use, but the learning curve is steep and when you hit the limitations of the framework, have fun making any progress beyond it. It's also a bit hostile to native and modern code. Shared pointers are ignored and crashy. The binding between C++ and QML is also not the fastest thing in the universe.
I am writing complex apps using both as my bread and butter. I would not recommend QML for quick prototyping of complex apps. QtDesigner/QtWidgets still beat it. However if you need touch or fluid and modern looking GUI, QtWidget is a dead end and QML/QtStudio shine. It's really a project per project choice. They fill different niches.
- qwerty456127 8y agoIsn't it convenient to develop the whole app GUI in QML/QtStudio and use HTTPS to communicate to a backend without using any kind of pointers (ever since I've been coding C and C++ many ears ago when I was a schoolboy, the word "pointer" scares the shit out of me %-)) or something like that? In fact my whole experience is about C#/WinForms and I'm thinking about what modern cross-platform GUI toolkit that is probably going to be relevant in future and more pleasure than pain to use should I possibly switch to. I am also interested in developing KDE5 desktop widgets ("plasmoids") which are to be written in QML AFAIK.
- Elv13 8y ago(disclaimer: I am a sponsored KDE5/KF5 dev) > Isn't it convenient to develop the whole app GUI in QML/QtStudio and use HTTPS to communicate to a backend without using any kind of pointers It /can/ be done, but almost nobody uses Qt that way. The web stack is a better fit for this. Pointers are not scary. Alsmost all languages these days use pointer (object reference) by default and it scares no one. Qt doesn't mix pointers with scoped/std::move in the default API, so you wont shoot yourself in the foot by accident. QObject, the base C++ class of every Qt component is reflected into the QML vm automatically, so you can use your objects on both side without any overhead or synchonization. You just need to add the `Q_PROPERTY` and `Q_INVOKABLE` macro in your header and QML will see it. > Isn't it convenient to develop the whole app GUI in QtStudio I honestly still think that's impossible. QtStudio isn't (yet?) close be being a good IDE. It aims at closing the gap between designers and coders. For pure coders, writing QML by hand is more predictable.