Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class A : public QObject { Q_OBJECT private: B* b; QLineEdit* lineEdit; public: // };L'objet de type A possède une méthode qui est appelé lorsque qu'un QLineEdit est modifié. Dans le slot ainsi appelé, je récupère le contenu saisi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class B : public QObject { Q_OBJECT private: A* a; QHttp http; private slots: void requeteDone(bool); public: // };
J'utilise une méthode de mon objet b de type B qui par un attribut QHttp envoie une requete http en get.
"get" est une méthode asynchrone qui rend immédiatement la main.
J'utilise le signal émis par mon objet QHttp : done(bool) pour savoir quand la requete peut être traitée. Je crée via la source récupérée une QStringList.
Mon problème :
mon objet B contient donc une QLineEdit, à laquelle je veux affecter un QCompleter. J'aimerai utiliser l'architecture MVC, enfin plutôt MV avec Qt, pour auto compléter mon QLineEdit. Ce que j'ai testé :
Dans le constructeur de ma classe A :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class A : public QObject { Q_OBJECT private: B* b; QCompleter* completer; QStringListModel* listModel; QStringList list; public: void setList(QStringList newList); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 listModel = new QStringListModel(list, this); completer = new QCompleter(listModel); this->lineEdit->setCompleter(completer);
Une fois que 'a' a créé la QStringList qui m'intéresse, je faisEn théorie, j'ai compris que lorsqu'on modifie le modele d'un MVC, la vue doit alors être modifiée... Or dans mon cas, le QCompléter ne s'actualise pas et à therme ne s'afiche JAMAIS...
Code : Sélectionner tout - Visualiser dans une fenêtre à part a->setList(listName);
Partager