[Interest] QML disappointments

Jérôme Godbout jerome at bodycad.com
Fri Jun 23 19:24:47 CEST 2017

The backbone of Qml is better then QWidgets IMO, the GUI surface layer lack
some serious attention, look like a bunch of C++ coder found it fun to
design and code the core and left the GUI part to a rookie.

Try to use the Qml TreeView and see how much fun you will get! you need to
create a C++ model each time. GroupBox in QtQuick.Controls 1.x was also a
pain with title sizing versus contain. Many basic widgets are missing. We
are still stuck with a QWidgets for Dock windows which is a pain to mix
with QWindow.

The old style system was a pain, haven't try the QtQuick.Controls 2.x just
yet, we are porting to Qt 5.9 (from 5.5). I was having high hope on it to
clear our old styles, we made our own to override the built-in one to make
sure we get consistency between platform. I was hoping for more uniformity,
from what I read here, I guess we will have to do the full work again,
that's sad news.

Once you have done a few solid component, a few solid helper functions and
a good debugger and property crawler for you Qml GUI, it go well overall.
Just that the out of the box Qml offering is pretty dry.

I like Qml, just wish some Component were revisited (Repeater performance
anyone, QQmlListProperty annoyance over a simple Javascript Array) and they
have better out of the box features, here's a list of stuff we have
implemented that is nearly essential to have something running smooth into

   - PropertyProxy to sync 2 property together without binding loop
   - Proxy between value and VariantList/VariantMap entry
   - vector3d, quaternion math, vector4d and matrix4x4 math function
   - logger stack call
   - JS Array/Map prototype to bring it to at least ECMA-262 (find(),
   findIndex(), ...)
   - Optional deep binding assignation (myobj.mysubobject.x where myobj may
   or may not exist, a ternary (? : ) could work for not too deep, but if you
   have a 4+ . into expression it turn into a big mess
   - Validator on object property
   - qsTr() + I18n.revaluate alike to update the translate when language
   change at runtime (could just emit the qsTr() function changed or simply
   wrap a property into it that could emit change when the loaded resource
   change and all the normal qsTr() would revaluate).

Feel like Qml is a good design but no real application have been developed
with it only really simple example.

That's my point of view, we still got a few big 3D CAD software made with
Qml, so it's clearly decent enough.

P.S.: One bug I found pretty annoying is the Qml qmldir declared singleton
are not per engine. It cost us a features that would have been so nice.

[image: bodycad] <https://www.bodycad.com/>
Jerome Godbout
Software Developer
2035 rue du Haut-Bord, Québec, QC, Canada. G1N 4R7
T:  +1 418 527-1388
E: jerome at bodycad.com

The contents of this email message and any attachments are intended solely
for the addressee(s) and may contain confidential and/or privileged
information and may be legally protected from disclosure. If you are not
the intended recipient of this message or their agent, or if this message
has been addressed to you in error, please immediately alert the sender by
reply email and then delete this message and any attachments. If you are
not the intended recipient, you are hereby notified that any use,
dissemination, copying, or storage of this message or its attachments is
strictly prohibited.

Le contenu de ce message et les pièces jointes sont destinés uniquement
pour le(s) destinataire(s) et peuvent contenir des informations
confidentielles et / ou privilégiées qui peuvent être protégées légalement
contre toute divulgation. Si vous n'êtes pas le destinataire de ce message
ou son agent, ou si ce message vous a été adressé par erreur, s’il vous
plaît avertir immédiatement l'expéditeur par courriel de réponse, puis
supprimer ce message et les pièces jointes. Si vous n'êtes pas le
destinataire prévu, vous êtes par la présente informé que toute
utilisation, diffusion, copie, ou stockage de ce message ou de ses pièces
jointes est strictement interdit.

On Fri, Jun 23, 2017 at 12:42 PM, Nishant Parashar <nishsites at gmail.com>

> Qt company belive that qml is the best thing that happened to qt. So many
> years have passed and we still see this.
> Reminds me of Nokia, they kept saying windows phone will succeed. Too late.
> Problem is that unlike windows phone Qt has no serious compitition (well
> wxwidgets is not that level). So Qt can live longer.
> I miss  QWidget.
> On 23-Jun-2017 8:52 PM, "Jason H" <jhihn at gmx.com> wrote:
>> So I've been using Qt for years (2004) and I like a lot about it.
>> But QML continually disappoints. I just don't remember all these
>> rendering issues on QWidgets. They Just Worked (tm). But QML fails to
>> render reliably on all platforms. Whether it's mipmap on iOS, SVG scaling
>> on Android... QtQuick Controls 2 was supposed to be good, but things don't
>> even look right on the provided styles. I like that I can quickly throw an
>> app together, but the lack consistency is between platforms and even themes
>> on the _SAME_ platform is rather distressing.
>> Someone needs to go through and check that a given QML file renders the
>> appropriately on all styles on all platforms. Capture the window to an
>> image and pixel compare the images for the same style (Universal) on
>> different platforms.
>> Or better yet, have some way to preview multiple platforms in a preview.
>> I don't know if you can assign a host box to render the platforms, but
>> something that submits the QML to a render farm and send screenshots back
>> would be fine. Have the host send events to the other QML and check
>> behavior too.
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170623/e817516f/attachment.html>

More information about the Interest mailing list