Bonjour,

J'ai un projet Qt dans lequel je voudrais qu'une variable déclarée dans le main soit accessible de partout dans mon projet, dans le main comme dans une autre classe. Je vous montre mon main:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QCoreApplication::setOrganizationName("GADZ36");
    QCoreApplication::setApplicationName("MyMediaLibraries");
    QQmlApplicationEngine engine;
 
    bdd basededonnees;
 
    //Mise à disposition des jaquettes pour la partie QML
    JacketModel* modele = new JacketModel(basededonnees.listJackets());   
    engine.rootContext()->setContextProperty("jacketList", modele);
 
    //Mise à disposition des paramètres de l'application pour la partie QML
    Parametres* parametres=new Parametres;    
    engine.rootContext()->setContextProperty("parametres", parametres);
 
    //Mise à disposition du modèle contenant les dossiers des films pour la partie QML
    ListCheminModel* listeChemins=new ListCheminModel(parametres->listeDossiersFilms);    
    engine.rootContext()->setContextProperty("listeChemins", listeChemins);
 
 
    //Création d'un objet spécial pour afficher les données des films dans la partie QML
    movieForQml *movieDetails = new movieForQml;
    engine.rootContext()->setContextProperty("movieDetails",movieDetails);
 
    //##################################################################################################
 
    engine.load(QUrl(QStringLiteral("qrc:///main.qml")));
 
    return app.exec();
}
Dans mon cas, je déclare une context property "modele" qui contient un model de données pour ma partie QML. C'est en fait un tableau contenant des objets que j'ai créé, des jackets. Ce "modele" contient une fonction qui s'appelle updateModel() que je souhaiterais appeler depuis l'une de mes classes. Le problème étant que je veux le déclarer dans le main car il faut que ça se charge au démarrage de l'application mais je n'arrive pas à trouver un moyen d'y accéder de partout. Est-ce que vous pouvez m'aider avec ça?

Cordialement