Introducing Qt 3D Studio
blog.qt.io
blog.qt.io
Probably the better webpage to get an idea of the use cases of "HMI" is the original NVIDIA pages:
http://www.nvidia.com/object/drive-design.html
http://www.nvidia.com/object/drive-automotive-technology.htm...
http://www.nvidia.com/object/automotive-infotainment-navigat...
I'm only going by the Qt webpage so I can't say that it absolutely requires Qt Quick as a unavoidable prerequisite. The Qt announcements says:
- ", so that designers can easily create 3D user interfaces that are easily integrated with the rest of the application written in Qt. The UIs can then also easily be extended using Qt Quick or Qt 3D."
So the demo video is showing how the UI interface created in 3D Studio is then integrated into a Qt Quick window.
Could Qt have made a demo with zero Qt Quick controls? Maybe. I don't know.
http://tmsearch.uspto.gov/bin/showfield?f=doc&state=4806:i1y...
Qt Widgets: produces "classic" almost-native looking applications for Windows, macOS, and Linux. think lists, treeviews, menus, dialogs. C++ API
Qt Quick Controls: like Qt Widgets, but with a QML (a declarative markup language) API
Qt Quick Controls 2: doesn't try to look native on any platform, instead you create your own look and feel or use one of their pre-made themes (they have a Material design theme for instance). end result looks a lot like Electron applications. I believe these run on iOS and Android, as well as Windows, macOS, and Linux. QML API
Qt Quick: umbrella term for both of the previous categories
to make things worse there's very little guidance on what type of application each should be used for, and it seems like a lot of the work in the recent Qt releases has been focused on Qt Quick, making me wonder if Qt Widgets will be considered deprecated soon.
Many new APIs are indeed QML only, like support for device and mobile UIs.
https://bugreports.qt.io/browse/QTBUG-42491
Ended up using a mix of Java, C++/CX and C++ instead of Qt.
However, with every GUI toolkit pushing C++ down the infrastructure alongside something more productive to the upper layers, pure C++ devs need to get used to being polyglot for UI code.
I doubt we will see again a pure 100% C++ GUI toolkit earning the hearts of the masses, specially if you look at what is available from Apple, Google, Microsoft and Qt.
Which makes it understandable that people just go "fuck this, I'm making a webpage".
The point is that you need to properly layer the common code from the platform specific code, from day one.
Also writing web apps, usually means "write once debug everywhere" due to the differences between browsers and rendering engines. And in some platforms, specially embedded ones, it is back to the days of "alert()".
I'm not talking about native code, I'm talking about a native looking UI. In other words, Win32 on Windows, GTK/Qt on Linux, etc. Instead of Electron or QML.
Obviously you don't need to rewrite the backend unless you're an idiot. But in some applications, the frontend part is huge.
The whole set of abstraction modules, need to be properly defined so that the whole architecture is able to use the best patterns from each platform without feeling a kludge.
How do you think many of us wrote portable software across Atari, Amiga, Acorn, Mac and PC?
One needs to abstract platform concept's like opening files into a modular API that accepts only the application relevant parameters, then provide an implementation using the platform specific UI toolkit.
It was harder to do with the Assembly applications, due to the hardware differences, but it was still possible to keep some code for those that shared the same processor architecture.
Still using a similar modular approach. Here using macro assemblers was a big help.
In case it isn't clear: Qt Widgets (and WxWidgets) did this for you. You could literally compile a native looking and feeling app for the major platforms from an identical C++ codebase.
Also Qt doesn't do this for any mobile OS. You are expected to do it yourself with QML. The Quick Controls only cover the mostly used ones and still don't do iOS or UWP themes.
Yes you need to write platform specific code, but it makes use of the native UI, not emulating it, and after a while you have your in house framework, so it is not like you are writing from scratch every time.
This is the approach taken from Dropbox or Microsoft, for example.
Right, that's the "did this" part. It no longer works.
No physics library, full of crash and UB, small community and slow bug fix. It need more time to be polished.
At the very least easing and collisions are necessary to make interactive components.
Right now most of the game engines are total overkill for business apps but basic GUI libraries don't have the physical attributes that make for a natural, intuitive user experience. We are really lacking tools for this new experience.
I don't think Qt has solved this problem but I think it demonstrates the need exists.
Source: I write AR apps.
However could be used for anything!