qload-c++ (library-name &optional unload)

  Loads a custom Qt/C++ plugin (see 'cpp-lib' in sources). The LIBRARY-NAME
  has to be passed as path to the plugin, without file ending. This offers
  a simple way to extend your application with your own Qt/C++ functions.
  The plugin will be reloaded (if supported by the OS) every time you call
  this function. If the UNLOAD argument is not NIL, the plugin will be
  unloaded (if supported by the OS).
  N.B: This works only for Qt6 functions with the following signature:
  "QVariant foo(QVariant, ...)" ; max 10 QVariant arguments
  Since a QVariant can also be of type QVariantList, this is a perfect fit
  for (nested) Lisp lists.

    (defparameter *c++* (qload-c++ "my-lib"))
    (qapropos nil *c++*)                      ; documentation
    (define-qt-wrappers *c++*)                ; Lisp wrapper functions


define-qt-wrappers (qt-library &rest what)

  Defines Lisp methods for all Qt methods/signals/slots of given library,
  previously loaded with QLOAD-C++.

    (define-qt-wrappers *c++*)          ; generate wrappers
    (define-qt-wrappers *c++* :methods) ; Qt methods only (no slots/signals)
    (my-qt-function *c++* x y)          ; call from Lisp


find-quick-item (object-name)

  Finds the first QQuickItem matching OBJECT-NAME. Locally set *ROOT-ITEM* if
  you want to find items inside a specific item, like in a QML Repeater. See
  also note in sources.


pixel-ratio ()

  Returns the effective device pixel ratio.


q! (method-name item/name &rest arguments)

  For calling methods of QML items.

    (q! |requestPaint| *canvas*)


q< (property-name item/name)

  Convenience macro for QML-GET. Use symbol instead of string name.

    (q< |text| *label*)
    (q< |font.pixelSize| *label*)


q> (property-name item/name value)

  Convenience macro for QML-SET. Use symbol instead of string name.

    (q> |text| *label* "greetings!")


q>* (property-name item/name value)

  Convenience macro for QML-SET-ALL. Use symbol instead of string name. Sets
  given property of all items sharing the same 'objectName'.


qapropos (name &optional qobject/name)

  Searches properties, methods, signals, slots for NAME in QObject
  (e.g. QQuickItem) passed as second argument. QQuickItems can also be passed
  by their 'objectName'.

    (qapropos nil *canvas*)
    (qapropos "color")


qapropos* (name &optional qobject/name)

  Similar to QAPROPOS, returning the results as nested list.


qchildren (item/name)

  Like QML function children().


qescape (string)

  Calls QString::toHtmlEscaped().


qexec (&optional milliseconds)

  Calls QCoreApplication::exec(). Optionally pass the time in milliseconds
  after which QEventLoop::exit() will be called. See also QSLEEP.


qexit ()

  Calls QEventLoop::exit(), in order to exit event processing after a call
  QEXEC with a timeout. Returns T if the event loop has effectively been
  exited.


qfind-child (qobject name)

  Calls QObject::findChild().


qfrom-utf8 (byte-array)

  Returns the BYTE-ARRAY (vector of octets) converted using
  QString::fromUtf8().


qget (object name)

  Gets a Qt property. Enumerator values are returned as integer values.
  Returns T as second return value for successful calls.

    (qget *quick-view* |width|)


qjs (method-name item/name &rest arguments

  Fast and convenient way to call JS functions defined in QML. You may pass
  up to 10 arguments of the following types:
  T, NIL, INTEGER, FLOAT, STRING, VECTOR of octets, and (nested) lists of
  mentioned arguments.
  N.B: Does not work with JS default arguments.


qlater (function)

  Calls FUNCTION as soon as the Qt event loop is idle.


qlog (arg1 &optional arg2 arg3...)

  For log messages on android.

    (qlog 12)
    (qlog "width" 10 "height" 20)
    (qlog "x ~A y ~A" x y)


qobject-name (qobject)

  Returns the QObject::objectName() of passed QOBJECT (FFI pointer).


qobject-p (x)

  Tests if argument is of type QObject.


qprocess-events ()

  Calls QCoreApplication::processEvents().


qquit (&optional (exit-status 0) (kill-all-threads t))
qq

  Terminates LQML. Use this function instead of ECL (ext:quit) to quit
  gracefully. Negative values for EXIT-STATUS will call C abort() instead of
  normal program exit.


qset (object name1 value1 &optional name2 value2...)

  Sets a Qt property. Enumerators have to be passed as integer values.
  Returns T as second return value for successful calls.

    (qset *quick-view* |x| 100 |y| 100)


qsingle-shot (milliseconds function)

  A single shot timer similar to QTimer::singleShot().

    (qsingle-shot 1000 'one-second-later)


qsleep (seconds)

  Similar to SLEEP, but continuing to process Qt events.


qversion ()

  Returns the LQML version number as 'year.month.counter'. The second
  return value is the Qt version as returned by QLibraryInfo::version().


root-item ()

  Returns the root item of the QQuickView.


tr (source &optional context plural-number)

  Macro expanding to QTRANSLATE, which calls QCoreApplication::translate().
  Both SOURCE and CONTEXT can be Lisp forms evaluating to constant strings
  (at compile time). The CONTEXT argument defaults to the Lisp file name.
  For the PLURAL-NUMBER, see Qt Assistant.