У меня есть базовый класс, из которого я получаю. Этот базовый класс (BaseClass
) является чистым классом C++ (не получается из QObject) и реализует методы, которые я хотел бы предоставить моему QML-интерфейсу без изменений.Любой способ избежать ручной упаковки методов базового класса для их маркировки Q_INVOKABLE?
Предположим, что базовый класс реализует метод bool foobar()
. В моем производном классе (DerivedClass
) я теперь обернуть их так:
DerivedClass.h:
class DerivedClass : public QObject, public Singleton<Phone>, public BaseClass {
Q_OBJECT
public:
Q_INVOKABLE bool qt_foobar();
DerivedClass.cpp:
bool DerivedClass::qt_foobar() {
return DerivedClass::instance().foobar();
Это отлично работает, но мне интересно, есть ли более элегантный способ просто передать или объявить соответствующие методы как Q_INVOKABLE
без этой упаковки и переименования.