[Development] QVariant comparison in Qt6
Thiago Macieira
thiago.macieira at intel.com
Wed Sep 23 23:15:03 CEST 2020
On Wednesday, 23 September 2020 13:24:24 PDT Milian Wolff wrote:
> > QAbstractItemModelPrivate::isVariantLessThan returns false for BOTH
orders:
> > isVariantLessThan(1, "hello") == false
> > isVariantLessThan("hello", 1) == false
>
> Right, sorry - I missed the part where you say "a few of the above are
> strings, the others are numbers". Mixed variant types within a single column
> is I believe a super rare case in models.
I explicitly did not mark the ones that were strings with quotes because they
aren't displayed in a model. If you are mixing, then you want consistent order
somehow and the string sorting is a good first approximation.
If you're not mixing, then QVariant's upcoming comparison operator suffices.
> So from my side: as long as there's an equivalent to comparing two QVariants
> with matching types, e.g. via a public
> QAbstractItemModelPrivate::isVariantLessThan equivalent which can then be
> used in proxy models etc., then I'm fine.
It's just QVariant::compare and QMetaType::compare.
> Please just make sure there are no string conversions or similar required
> for that common case. That was all I wanted to point our (after
> misunderstanding your example above).
Just note how QVariant(-1) > QVariant(0U), just like -1 > 0U in C++.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel DPG Cloud Engineering
More information about the Development
mailing list