25 comments

[ 3.0 ms ] story [ 31.2 ms ] thread
The tool of choice :)
I used to use Qt heavily for Python development (PyQt and PySide) a few years back, it's a fantastic framework. This looks good as ever.

It seems a bit odd that on OSX you can get the offline installer for Android, or the version for Android and iOS, but not a version just for iOS. Does the iOS package have a dependency on something in the Android one?

I'm using Qt quick (LGPL version) for development. After a bit of a learning curve, i really like it.

Its important to recognise that QtQuick and QtWidgets are _different_ systems. Quick is all on the GPU. It awesome for building touch based apps. I'm currently targeting desktop development. I haven't found much else that will use the GPU pipeline in an easy way.

QtQuick is definitely a step forward with respect to touch input and slick animated UIs, but there are things I really dislike about it.

* Javascript. Ew.

* Deployment is a bit of a nightmare. They have windeployqt.exe which helps, but it doesn't automatically copy the MingW DLLs, and all the QML files aren't compiled as resources which is a bit ugly.

* The apps are huge. It's like 50 MB for hello world.

* There isn't very good encapsulation of QML components. All object IDs seem to go in one big namespace.

Another problematic part is styling. QtWidgets can be styled using css and it works really well.

QtQuick controls on other hand can't be styled using CSS, which is bit of a bummer IMO.

totally agree. I'd like to see more on deployment. it would be nice to have cross platform installer and updater too. I've had to make these myself.

I put my own QML into resources, but windeployqt.exe pulls in a big chunk of their own QML into the deployment. huh? these should all be resource.

My "hello world" app is 30MB, so yes this too.

(comment deleted)
CMake makes deployment a bit easier for our company.

Also you can include QML files as resources using qrc and they will compiled into the binary.

(comment deleted)
I've been using QML for 3 or 4 years now. My answers are tainted with experience.

1. JavaScript: is there only to facilitate manipulation of Items and elements. Use C++ for any logic

2. Deployment: Yes

3. Size: Yes

4: This sounds like you're doing it wrong. IDs are scoped to their context (usually the item and on down)

The object IDs are scoped, actually :) (just that the scopes are chained and the lookup mechanisms are a bit complicated)
>The apps are huge. It's like 50 MB for hello world.

This doesn't sound right. Can someone else verify? I'm pretty sure I've written Android applications in QML that are far smaller. Are you sure these are release binaries?

Depends what you use. Native styles brings in Widgets, for example.
Another feature I really like with QtQuick is how intuitive it is to design in QML. The declarative syntax is great in comparison to writing GUIs in C++. After all, I don't care about in which order the GUI elements are added to the window (which you have control over in C++), as long as they end up in the right place. The syntax also feels much more modern in comparison to alternatives like HTML/XML. After trying multiple ways to design GUIs in different languages over the years, QML is the best working alternative I have found. Most of the time I even find it easier to use than a visual design tool.
This is awesome. Qt Creator is one of the best C++ IDEs there is (I'd say second only to Visual Studio, and that's debatable).
Don't forget CLion, its Visual Studio with Resharper C++.
(comment deleted)
Ugh, sorry, accidentally down voted your comment. Stupid tiny interface on iPad.
I find QtCreator superior to CLion. It's faster and more polished, has better vi-emulation and clang ecosystem integration.
What do you mean it's Visual Studio?
What if we can use golang with Qt Creator...
Hear. I want to give go a try but the lack of a decent gui solution is keeping me from investing too much time.