[Development] Issues with QFormBuilder - All properties modified & Invalid UI
Jaroslaw Kobus
Jaroslaw.Kobus at qt.io
Thu Oct 31 08:35:37 CET 2019
> Even if not using the QFormBuilder and a user change all the properties at a widget using the Qt Designer we are subject to the same issue, aren't we?
More or less, that's why I said that QDesigner is full of special cases which address some issues.
> More and more this looks to me like a bug that should be addressed.
The raising awareness of issues caused by the lack of orthogonality between properties is a good thing.
> Given this is not being done consistently across Qt and/or the meta
> object system lacks these informations, this is all pointing towards
> deprecating QFormBuilder as a "real" utility and being more like some
> just quick-glue code lacking a robust use case.
Well, in fact QFormBuilder is doing very simple thing and IMO it's doing it
in the right way. We may of course deprecate it, which won't change the fact
that Qt properties will remain non-orthogonal and will continue to cause
issues.
________________________________________
From: Hugo Slepicka <hhslepicka at gmail.com>
Sent: Tuesday, October 29, 2019 5:48 PM
To: Giuseppe D'Angelo
Cc: Jaroslaw Kobus; Volker Hilsheimer; development at qt-project.org
Subject: Re: [Development] Issues with QFormBuilder - All properties modified & Invalid UI
I agree with Giuseppe and I would like to add to it the fact that properties are restored in what I could guess as alphabetical order, which in itself already causes problems for custom widgets.
That said, when developing custom widgets developers must pay attention to this fact of properties that are somewhat interlinked. It comes as a surprise that the core Qt code does not take that into consideration.
More and more this looks to me like a bug that should be addressed.
Even if not using the QFormBuilder and a user change all the properties at a widget using the Qt Designer we are subject to the same issue, aren't we?
On Tue, Oct 29, 2019 at 4:14 AM Giuseppe D'Angelo via Development <development at qt-project.org<mailto:development at qt-project.org>> wrote:
On 29/10/2019 11:32, Jaroslaw Kobus wrote:
> Take any of QWidget's properties, e.g. sizePolicy, grep through qt sources
> and search where setSizePolicy is used - QAbstractSlider::setOrientation(),
> so "orientation" property of abstract slider influences "sizePolicy" - non-orthogonality detected.
> If you store both properties, and then read them - the result depend on the read order.
Sorry, I'm lost now. If you store them both and apply them in either
order, shouldn't the result be correct no matter what?
==
If this is not true for some case: we have an API problem, and we can
debate whether it's in the class featuring interlinked properties, or in
the meta property system that is not clearly reflecting the
dependencies, thus making a (de)serializer of such properties impossible
to write correctly. And the latter has way more profound implications
than just serializing the state of a QObject (e.g. thinking of IPC like
DBus, QtRO, etc.).
Thanks,
--
Giuseppe D'Angelo | giuseppe.dangelo at kdab.com<mailto:giuseppe.dangelo at kdab.com> | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - The Qt, C++ and OpenGL Experts
_______________________________________________
Development mailing list
Development at qt-project.org<mailto:Development at qt-project.org>
https://lists.qt-project.org/listinfo/development
More information about the Development
mailing list