Pass -norc on the command line to not load ~/.eclrc on startup.
Since :eql and :eql5 are in *features*, you can use e.g. #+eql / #-eql5 as usual.
To run a Lisp file directly, do e.g. eql5
examples/5-colliding-mice -qtpl.
See the EQL UI (command eql -qgui) for a complete list of all
supported classes and functions.
In the above mentioned UI you find a "Select" button, allowing you
to select any Qt widget (even in other main widgets), if previously loaded
from the UI command line. After selecting a widget, the
parameter qsel:*q* will be set to it.
See command line option -qtpl for a top-level processing Qt
events (see also readline note in ../README.txt).
It uses a simple GUI dialog for
debug input (needed because read runs in its own thread).
On
eventual print output, you won't see a fresh prompt, but the REPL will
remain ready for input.
You can set this option permanently by adding this in ~./eclrc:
#+eql (setf eql:*qtpl* t)
If you want to use temporary Qt objects, you can use the qlet
convenience macro (see the function list). It's a let* variant
for Qt objects, deleting them when leaving its body.
No universal GC (garbage collection) for Qt objects:
qlet macro, which are
deleted when leaving the qlet body.
qlet (instead of qnew) if you only
need a local Qt object inside a function (e.g. QPainter, QVariant, QRegExp).
QFont) returned by the functions
qget and qfun.#<QFont 0x9243840 GC>.
Enumeration example: |Qt.AlignCenter|.
So, all enumerations
are defined as constants, using case preserving symbol names (allowing
convenient tab completion in Emacs).
Errors in EQL functions don't break into the debugger; if you want them to
do so, set the variable eql:*break-on-errors*
to T.
(So the choice is left to you: depending on the situation, either option
may be more convenient than the other.)
The currently available Qt5 Modules (see qrequire) are:
:help :multimedia :network :sql :svg :webkit (module :opengl is obsolete, see QOpenGLWidget etc.)
If you want to use CLOS together with qt-object instances
(which are of type struct), see
examples X-extras/CLOS-encapsulation.lisp
and 5-colliding-mice.lisp.
So there's a simple way to
use either defclass or defstruct to
encapsulate a qt-object.
If you're interested in embedding EQL in existing Qt/C++ projects,
see example in directory Qt_EQL/ (which can be used
together with Slime).
See also plugin example in directory Qt_EQL_plugin/.
The necessary parsing for generating the src/gen/* files is
done by parsing the Qt documentation. See helper/README.txt if you want do it yourself