Sto scrivendo un'app Qt.
Ho separato la mia app da un frontend QML e un backend del plugin C++.
Nel mio plugin C++ ho una classe astratta Session che vorrei esporre a QML e ho anche alcune implementazioni di quella classe.
Vorrei che il mio frontend QML conoscesse solo la classe Session e non si preoccupasse delle specifiche del tipo di sessione.
Ho provato alcune varianti di qmlRegister * per registrare il mio tipo di sessione con QML ma Session deve essere concreto (come nel caso di qmlRegisterType) o registra bene ma semplicemente non posso riferire al tipo di sessione da QML come in property Session session
senza nemmeno creazione di istanze di una sessione da QML.
Qualcuno sa come dovrei avvicinarmi a questo?Registrare una classe astratta C++ in un plugin QML e fare riferimento ad esso da QML
UPDATE:
Un esempio di ciò che non ha funzionato:
In main.cpp:
char const* const uri = "com.nogzatalz.Downow";
qmlRegisterUncreatableType<downow::Session>(uri, 1, 0, "Session", "Abstract type");
In DowNow.qml:
import QtQuick 2.0
import com.nogzatalz.Downow 1.0
Item {
property Session session
}
Si dovrebbe aggiungere che cosa esattamente si è tentato e che cosa wend sbagliato. Inoltre, cosa intendi con "alcune implementazioni di quella classe" – labsin
Ho provato a registrare la classe astratta Session usando qmlRegisterType/qmlRegisterInterface/qmlRegisterUncreatableType. Poi ho provato a tenere un oggetto Session come una proprietà in QML ma non funziona. Con "alcune implementazioni di quella classe" intendo che la classe astratta Session ha alcune classi concrete che la ereditano. –
Hai trovato qualche soluzione per il prolem? Mi sto occupando di un problema simile. – likeToCode