pub trait QObject {
    fn meta_object(&self) -> *const QMetaObject;
fn static_meta_object() -> *const QMetaObject
    where
        Self: Sized
;
fn get_cpp_object(&self) -> *mut c_void;
unsafe fn cpp_construct(pined: &RefCell<Self>) -> *mut c_void
    where
        Self: Sized
;
unsafe fn qml_construct(
        pined: &RefCell<Self>,
        mem: *mut c_void,
        extra_destruct: extern "C" fn(_: *mut c_void)
    )
    where
        Self: Sized
;
fn cpp_size() -> usize
    where
        Self: Sized
;
unsafe fn get_from_cpp<'a>(p: *mut c_void) -> QObjectPinned<'a, Self>
    where
        Self: Sized
; fn get_object_description() -> &'static QObjectDescriptor
    where
        Self: Sized
, { ... } }
Expand description

Trait that is implemented by the QObject custom derive macro

Do not implement this trait yourself, use #[derive(QObject)].

The method of this trait fits into two categories: the ones that are re-implemented by the custom derive, and the ones that are used by this macro and need to be implemented by other QObject-like trait which you use in the qt_base_class! macro.

Required methods

Returns a pointer to a meta object

Returns a pointer to a meta object

return a C++ pointer to the QObject* (can be null if not yet initialized)

Construct the C++ Object.

Note, once this function is called, the object must not be moved in memory.

Construct the C++ Object, suitable for callbacks to construct QML objects.

Return the size of the C++ object

Return a rust object belonging to a C++ object

Provided methods

Returns a QObjectDescriptor for this type

Implementations

Creates a C++ object and construct a QVariant containing a pointer to it.

The cpp_construct function must already have been called.

FIXME: should probably not be used. Prefer using a QmlEngine::new_qobject. QVariant is unsafe as it does not manage life time

See Qt documentation for QObject::destroyed

See Qt documentation for QObject::setObjectName

See Qt documentation for QObject::objectNameChanged

Implementors