Ich habe einige Work-in-Progress-QML-Code, der derzeit QtCharts 2.1 von Qt 5.6 erfordert. Allerdings führen wir unseren Code derzeit mit Qt 5.5.1 aus, das nur QtCharts 2.0 enthält.QML-Import spätere Modulversion nur wenn verfügbar?
Ist es möglich, in QML einzuchecken, was die neueste verfügbare Version von QtCharts auf dem System ist, dann führen Sie den richtigen Import, und behandeln Sie alle zugehörigen Sonderfall Logik geeignet? Ich möchte die Implementierung meiner Funktion abschließen und sie in den Integrationszweig ohne einbinden, um die GUI-Funktionalität auf Computern mit 5.5.1 zu brechen. (Ich bin okay mit diese neuen Funktion jetzt gebrochen werden, aber zur Zeit scheint es, dass der gesamte QML-Engine nicht geladen werden kann, wenn eine QML-Datei ungültig Importe enthält.)
Aus purer unbeugsamer Hoffnung habe ich versucht, die folgende:
try {
import QtCharts 2.1
} catch {
import QtCharts 2.0
}
... was natürlich nicht funktioniert, wie try
ist nicht Teil der QML Stammebene Syntax.
Eine verwandte-but-not-quite-Duplikat Frage ist here. Der Unterschied besteht darin, dass das OP für diese Frage anscheinend mit der Verwendung eines Loader
zum dynamischen Laden eines einzelnen QML-Elements zufrieden ist. Ich glaube nicht, dass dieser Trick in meinem Fall verwendet werden kann, weil QtCharts
2.0 und 2.1 die gleichen QML - Elementtypen enthalten, und auf jeden Fall weiß ich nicht, wie man "die neuesten" verfügbaren QtCharts importiert (soweit Ich kann sagen, die import
Anweisung Syntax erfordert eine bestimmte Versionsnummer).
EDIT: Wie pro meine Antwort unten, die Loader
Abhilfe nicht anscheinend arbeiten. Ich nehme an, das ist immerhin ein Duplikat.
24. Januar 2011 .... – coyotte508
@ coyotte508 Ja, es sieht so aus, dass wahrscheinlich nie realisiert werden. –
@ coyotte508 Allerdings habe ich mir den vorgeschlagenen Work-around noch einmal angeschaut, und er funktioniert * in meinem Fall. –