I have an interesting issue. I don't know how to combine two classes inhereted from QObject. Base accent to my problem using Q_INVOKABLE method in derived class from base class. I want use "loadFromJson" multiple times in various "models".
I've allready trying to define Q_OBJECT macro, and rebuild the logic of classes.
//model.h
class Model : public QObject{
Q_OBJECT
public:
Q_INVOKABLE bool loadFromJson(const QString &data);
}
//sqltablemodel.h
class SqlTableModel : public QSqlTableModel{
//some code
}
//server.h
class Server : public SqlTableModel, Model
{
Q_OBJECT
public:
explicit Server(QString tableName = "");
};
//main.cpp
Server *server = new Server();
context->setContextProperty("server", server);
//
//server.qml
server.loadFromJson("123"); // not working
/*
If i remove QObject from Model then i can't call loadFromJson even Q_OBJECT defined, otherwise Server is ambigous using QObject. But i want to use methods from both base classes SqlTableModel & Model in derived Server with Q_INVOKABLE ability.
*/
main.cpp:41: ошибка: ‘QObject’ is an ambiguous base of ‘Server’ context->setContextProperty("server", server);
model.h:27: ошибка: undefined reference to `vtable for Model'