A lightweight QML-only ECL binding to Qt5/Qt6.
Find a file
2024-09-19 12:14:47 +02:00
cpp-lib revisions 2024-05-23 10:28:06 +02:00
doc revisions 2023-11-14 09:54:34 +01:00
examples update examples 'cl-repl', 'meshtastic' for android 14 2024-09-19 12:14:47 +02:00
platforms revisions 2024-07-18 16:23:04 +02:00
screenshots add simple way for installing Qt5.15 libs on Sailfish; add Sailfish screenshot 2023-10-11 16:33:13 +02:00
slime revisions 2022-03-18 07:59:44 +01:00
snippets add new snippet 'hourglass'; revision of 'help.htm' 2023-09-19 18:45:42 +02:00
src revision 2024-09-19 11:38:00 +02:00
.gitignore several fixes and improvements for SailfishOS install 2023-10-10 14:45:06 +02:00
beginners-guide-android.md some revisions 2022-05-17 21:45:40 +02:00
beginners-guide-ios.md some revisions 2022-05-17 21:45:40 +02:00
license.txt revision 2023-06-15 10:28:05 +02:00
readme-build.md update docu 2023-09-11 19:05:59 +02:00
readme-prepare-android.md revisions 2024-03-23 10:55:28 +01:00
readme-prepare-ios.md update docu 2023-09-11 14:17:29 +02:00
readme-qml-live-preview-and-slime.md revisions 2022-04-16 07:09:07 +02:00
readme-qt.md revisions 2023-04-30 19:01:36 +02:00
readme-sailfish.md revision 2023-11-07 18:06:08 +01:00
readme-windows.md revisions 2022-04-23 15:21:15 +02:00
readme.md add patch to make Qt5.15.2 work with Xcode 15 2023-12-05 17:40:48 +01:00

Description

A lightweight ECL based QML-only binding to Qt5/Qt6.

This small project aims to simplify all the steps needed for building cross-platform apps. The same sources can be used to build executables for both desktop (Linux/macOS/Windows) and mobile (android/iOS/SailfishOS).

QML auto reload

A new feature is auto reloading of QML files after saving any changes. This works both on the desktop and on mobile.

As a concrete example, you may have running your app on the desktop, and have both an android mobile device plus an iOS mobile device pointing to the IP of the desktop. Now you will see any change to QML on all 3 screens simultaneously.

This even works (with some limitations, and only in this advanced example) at QML file level, which means: only the QML file currently edited is reloaded, preserving the state of all other QML files, and -- more importantly -- the current view in case of nested page structures.

License

Both ECL and Qt5/Qt6 are LGPL (being Qt6 a special case to consider).

LQML is BSD 0 clause.

Tested

The examples are only tested with Qt5.15. The binding also works with Qt6, but would need some adaption of QML in most examples. It's recommended to use the new Qt online installer (see readme-qt), where you can choose to install different Qt versions side by side, sharing the same Qt Creator.

TODO

  • port to CMake (?)

macOS note

Qt works (obviously) perfectly well on Linux.

On macOS instead, I found this a little annoying bug: after a QML property change in Slime, the QQuickView is not updating. So, for a visual update you need to (sometimes) click on the view to actually see the property changes.

Windows note

The Windows version is only meant to run on the desktop, using the (free) MSVC compiler. Please see readme-windows for details.

SailfishOS note

On Sailfish it runs using Qt5.15 and qt-runner, so it's not really 'native' (in a pure sense) and doesn't have native look and feel, but that's the only feasible way to run it on that platform, see readme-sailfish.

(Needless to say, this is - by far - the nicest experience you can have developing for mobile.)

Known issues

  • to make Qt5.15.2 work with Xcode 15, see patch here

  • on iOS, functions read-sequence, read-char etc. don't update file-position (ECL bug?); for a workaround see hack here