Class

C++ classes have a corresponding CLOS class. The can be used like any CLOS class; E.g: to make a QObject instance:

(make-instance 'qt:object)

Supply arguments as list to the :args keyword:

(let ((parent (make-instance 'qt:object)))
  (make-instance 'qt:object :args (list parent)))

or use :arg0, :arg1 and :arg2.

(let ((parent (make-instance 'qt:object)))
  (make-instance 'qt:object :arg0 parent))

To extend a C++ class you have to use cxx:class as metaclass:

(defclass my-object (qt:object)
  ()
  (:metaclass cxx:class))

(make-instance 'my-object)

The first superclass must be a Smoke class. When you define a class that has several Smoke superclasses, they will be constructed with their default constructor. For the first Smoke superclass you can supply arguments with the :args and :arg0 etc. keywords.

(defclass my-graphics-object (qt:object qt:graphics-item)
  ()
  (:metaclass cxx:class))