[Development] Question about Qt's future

Roland Winklmeier roland.m.winklmeier at gmail.com
Mon Apr 21 13:39:43 CEST 2014


Am 21.04.2014 05:27, schrieb Joshua Kolden:
> I’m curious why you are not interested in QML.  
> 
> I’m just finishing up a an initial production release of software oriented towards high-performance graphics.  We used QML for the interface, coffeescript for view logic, and Qt/c++ for processing and business logic.  It works astonishingly well sine we can design and build the UI separately from the business logic, and designers can work interactively without a compilation step, while the business logic can worry about threads and other performance processing complexity without regard to the event loop, just throwing things over the fence to the UI when ready.
> 
> I see no reason to stay with Qt Widgets at all other than legacy application support.  So what is your concern?  Is it just that you don’t what to go from being an expert in the tools you already know to an beginner at new tools, or are you up to speed on QML and you have some details on why this approach is a bad idea?  I haven’t found any major issues, other then a few bugs and missing features that will be fixed soon enough. 
> 
> Please don’t read this as me being facetious, I’m genuinely looking for any information that would indicate the we are on the wrong path with our application design.
> 
> Thanks,
> j
> 
> 
> On Apr 20, 2014, at 6:40 PM, Michael Knight <jackdalton20000 at gmail.com> wrote:
> 
>> I feel like Qt is going in the direction of being Qml and Javascript only.I 
>> fear that they may abandon Qt Widgets in the near future,I think they are 
>> heavily promoting Qml.I don't want to use Qml,and before I start using Qt,I 
>> want to be sure that they will not abandon C++ side of Qt and that they 
>> continue to develop C++ side.It seems to me that they are developing Qml side 
>> mostly. 
>>
>> What do you think about this?
> 

I'm working for a Flight Simulator addon project which was initiated 1
year ago. When we started with the UI part, QML was heavily promoted in
Qt5 to be the future of Qt and I also got the feeling that QtWidgets are
not longer developed (except of bug fixing and minor features - but the
focus is now on QML). I hadn't used QML or QtQuick before at all, so I
looked into it and the demonstrations were indeed nice. So we started to
design our UI with QML. I liked the design to split business logic into
C++ and UI design into QML and I still like it, but I came across
several blocking issues (some of them are only valid for our
application, some of them are general):

- Our application has a huge framework of value classes. They cannot (or
at least it does not make sense to) derive from QObject for several
reasons. But subclassing QObject is the requirement to access data from
C++ in QML. So we had our framework of well designed value classes and
cannot use them in QML. There were evaluations to create QObject
wrappers, but no nice solution. So no support for value classes is
probably a show stopper for many projects. With Widgets we were able to
use them easily.
- When we did our QML tests, I got the feeling QML in general is not yet
stable enough. The performance was not always the best (e.g. scrolling
in a table view was not smooth).
- UI components: QML did not have the set of standard UI components. I
know this is currently changing with QQuickControls but one year ago,
there wasn't much. So Widgets were easier to start with.
- Memory consumption: Even a mini example took about 70 MB of memory,
QtWidgets need a lot less. This is not a complain, I know the JS runtime
needs its initial memory. It was just one factor, because our
application is running as an addon to Flight Simulators and they usally
consum a lot memory. This is especially a major problem with MS Flight
Simulator since it is only available as 32 bit application. Therefore
every any MegaByte is important.

Dont get me wrong. I'm excited about QML. Doing UI design in C++ is
awfull and QML really would improve things. The current implementation
is good for some projects, but it is not the solution for everything.
There are still even new projects going back to QtWidgets (as we did),
because QML is not suitable. So to me its not only legacy support.
However I rethink my descision when most the above points are addressed
in later QML versions.

---
Diese E-Mail ist frei von Viren und Malware, denn der avast! Antivirus Schutz ist aktiv.
http://www.avast.com




More information about the Development mailing list