QMLCORE ist eine einfache Reihe von Tools, die wir (ein kleines Team von QML -Befürwortern) seit Jahren verwenden, um die Entwicklung der HTML5 -UIS für mobile und Desktop -Geräte zu vereinfachen. Es wurde mit berücksichtigter originaler QML entworfen, während es nicht zu 100% kompatibel ist und in einigen Aspekten verbessert wurde. Die Hauptkonzepte sind jedoch gleich. Wenn Sie also mit dem ursprünglichen QML vertraut sind, können Sie sofort beginnen.
QMLCORE bietet eine Toolchain, die in Python mit Python-Future geschrieben wurde und es ermöglicht, über beide Python-Versionen zu laufen. Normalerweise müssen Sie sie nicht direkt verwenden. build bietet eine bequeme Wrapper um sie alle.
Jeder moderne Python (2 oder 3) wird gut laufen. Jinja2 ist eine andere Option für die Vorlagen, falls Sie mehr als QML -Loader in Ihrer HTML -Datei wünschen, während sie für kleine Apps nicht erforderlich ist.
So installieren Sie die Anforderungen ausgeführt:
$ pip install - r requirements . txt cd <project-dir>git clone [email protected]:pureqml/qmlcore.git Der QML -Compiler scannt Quellenverzeichnisse für QML -Dateien und analysiert jeweils. Dateiname beginnend mit in Großbuchstaben betrachteter Komponente, die so instanziiert ist. Projektweite Optionen werden in der .manifest Datei gespeichert. Das Ergebnis der Kompilierung ist eine einzige JavaScript -Datei mit minimalen Abhängigkeiten (nur Modernizr), die in der mobilen und in der Desktop -Umgebung verwendet und von Probe .html Launcher begleitet wird.
Manifest ist eine Sammlung projektweiter Hacks, die wir verwendet haben, um verschiedene Projekte zu verpfuschen. Einige von ihnen können nützlich sein oder nicht.
templater - Template Engine zu verwenden, werden im Moment nur "einfache" und "Jinja2" unterstütztweb-prefix -Siehe Option -P unten, Geben Sie das CSS -Regeln an, das Präfix istminify - False/True oder Compiler -Name als Zeichenfolge, nur 'GCC' und 'Uglify -Js' werden unterstützt. Der Compiler von Google Closure verlangt von Java.platforms verwenden zusätzliche Plattform/*/ Dateien, Standard und einzige Plattform sind für den Moment 'Web'path - Zusätzliche Verzeichnisse zur Suche nach Quellen für -m, --minify Minify mit Standardoption ('Uglify-JS')-k, --keep Heep Original Quelle nach der Minifikation, nützlich für die Debugie von Minifikationswarnungen-d, --devel -Entwicklungsmodus, laufen Sie weiter und warten Sie auf Änderungen, erfordert das inotifizierte Modul-p, --web-prefix Web-Präfix, die Standard-CSS-Regeln entfernt, addiert 'QML-' Präfix für sie, sodass Sie HTML/QML austauschen können.-u, --update-translation Aktualisierung Übersetzungsdateien, angegeben in Manifest.languages-j, --jobs fassen parallel und parallel--boilerplate Initialisierte das minimale Mindestanschluss für einen schnelleren Anpfiff im aktuellen Verzeichnis.Wir unterstützen viele verschiedene Plattformen und Videointegrationsvarianten.
Die meisten bemerkenswerten Plattformen sind:
Die vollständige Liste der unterstützten Plattform finden Sie hier und hier. Oder fragen Sie uns alternativ einfach.
Hauptrepo für die native Android-Implementierung von PureQML ist https://github.com/pureqml/qmlcore-android.
Um eine native Android -App zu erstellen, müssen Sie:
ANDROID_HOME./qmlcore/platform/pure.femto/build-android-native.sh Skript.QMLCORE verwendet QT-Ansatz zur Lokalisierung. Sie schreiben den Code in Ihre Standardsprache, generieren/aktualisieren (Build -U) .ts Übersetzungsdateien, übersetzen sie mit QT -Linguist und kompilieren Sie Ihr Projekt. QMLCORE erkennt TR, Qstr, Qstranslate -Funktion sowie qt_tr_noop/qt_translate_noop macros.
QMLCORE enthält ein minimales Minimum an Plattformsteuerungen: Bilder, Texte, Rechtecke und Modell-View-Delegate-Klassen. Verschiedene Kontrollen, die nützlich sein könnten, befinden sich in einem separaten Repository. Klonen Sie es einfach über git clone [email protected]:pureqml/controls.git in Ihrem Projekt und das war's!
Wir benötigen nach jeder Erklärung ein Semikolon. Dies kann in Zukunft verändert werden.
Die größte Diskrepanz bei der ursprünglichen QML ist, wie der Fokus implementiert wird. Wir wollen überall einen "immer konsistenten" Fokus haben. Sie müssen jede fokusfähige Komponente mit focus: true; Eigentum und der Rest sollte ohne Änderung funktionieren. Wir bieten mehrere bequeme Eigenschaften, um den Fokus mit Leichtigkeit zu bewältigen:
Bitte verwenden Sie den folgenden Befehl, um die benutzerdefinierte Modernizr -Build -Seite zu erhalten: head -n2 dist/modernizr-custom.js | tail -n1 oder nur die zweite Zeile von Modernizr -custom.js -Datei
Modernizr erzählt Ihnen, was HTML, CSS und JavaScript den Browser des Benutzers zu bieten haben. https://modernizr.com/
Eine Community -Sourced -Datenbank mit Spielcontroller -Mappings https://github.com/gabomdq/sdl_gamecontrollerdbbbb
Apache Cordova ist ein Open-Source-Rahmen für mobile Entwicklung. Sie können Standard -Web -Technologien verwenden - HTML5, CSS3 und JavaScript für die plattformübergreifende Entwicklung. https://cordova.apache.org