El divendres, 18 de setembre de 2020, a les 11:00:23 CEST, André Somers va escriure: > On 18-09-2020 09:12, Albert Astals Cid via Development wrote: > > El divendres, 18 de setembre de 2020, a les 2:54:53 CEST, Thiago Macieira > > va> > > escriure: > >> On Thursday, 17 September 2020 16:15:47 PDT Bernhard Lindner wrote: > >>> Hi! > >>> > >>> There was a discussion about the decision to deprecate (remove?) > >>> QVariant > >>> comparison (<,>) in Qt6 completely. > >>> > >>> Has anything changed for Qt6 (especially regarding comparison of equal > >>> and/or convertible types)? Is the complete deprecation still the latest > >>> decision? > >> > >> Yes, it's changed; no, it's not deprecation. > >> > >> What's been removed is the conversion. Aside from the numeric types, > >> comparing two variants of different types will always result in false. If > >> you want to compare across types, convert one to the other's type or to a > >> common third type. You know what data you put in there and you should > >> know > >> what conversions can be lossy or not. > > > > But i don't what data someone else put it in a QVariant. > > > > The fact that QAbstractItemModelPrivate::isVariantLessThan exists should > > be > > proof enough that you can't expect my class to know what someone else put > > inside a QVariant, i mean that's basically the defining feature of > > QVariant "it can hold random things for you". > > > > Is the official Qt position that we should all "copy&paste" > > > > QAbstractItemModelPrivate::isVariantLessThan into our item model classes > > that need sorting? > > How often do you really have items of different QVariant types in a > single column and and role in a model?
Probably not often, but that means adding new API to classes forcing users of those classes to specify either a single type for each role/column (so the comparison can be done internally in the class) or a comparer function for each role/column and offloading the comparison back to the user, makes things a bit annoying. > > From what I understand, in Qt 6 you can still compare QVariants if they > contain the same type - be that a user type or not - for both equality > and lessThan provided the type in QVariant supports such comparisons. Right? There's no lessThan in Qt6 for QVariant, so no, you can't do that [unless you unbox the data from the QVariant, but then you're not comparing QVariants anymore :)]. Cheers, Albert > > André > > > _______________________________________________ > Development mailing list > [email protected] > https://lists.qt-project.org/listinfo/development -- Albert Astals Cid | [email protected] | Senior Software Engineer Klarälvdalens Datakonsult AB, a KDAB Group company Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322) KDAB - The Qt, C++ and OpenGL Experts _______________________________________________ Development mailing list [email protected] https://lists.qt-project.org/listinfo/development
