M
Ja ja, ich weiß. Das Problem ist aber, dass Qt das intern aufruft. Also, Code in QObject::setProperty in etwa:
int metaTypeId = getPropertyMetaTypeId();
value.convert(metaTypeId);
Und QVariant::convert macht dann in etwa folgendes:
QVariant oldValue = *this;
clear();
if (!oldValue.canConvert(type))
return false;
D.h., ungeachtet dessen, dass die Konvertierung eigentlich funktionieren würde, weil mein Handler das kann, geht convert sofort raus, weil canConvert den Handler nicht aufruft und meint, es geht nicht. Ich würd ja gern auf das canConvert verzichten, aber ich seh keine Möglichkeit, das zu umgehen.
Außer natürlich, die Qt umzubauen, aber darauf würde ich gern verzichten. Wir haben eh schon so viel umgebaut, dass ein Umstieg auf eine aktuellere Version sehr schwierig ist, und das wäre so ein potenzieller Fehler, den man leicht übersieht, weil dann kompiliert, aber dann irgendwas nicht funktioniert weil das Verhalten plötzlich wieder anders ist.