Bonjour.
J'écris un programme avec Qt qui est constitué de plusieurs widgets en « cascade » (MainWindow → CentralWidget → QStackedWidget → QScrollArea → et ça continue).
J'ai une classe Settings qui encapsule une variable de type QSettings :
Code cpp : 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 //Settings Settings { public: Settings(); //charge toutes les variables ~Settings(); private: QSettings qs; //toutes les variables correspondants à tous les parametres }; int main() { //du code Settings settings; MainWindow mainwindow(settings); DialogA dialogA(settings); DialogB dialogB(settings); //du code }
Je charge les paramètres avant d'afficher le mainwindow car j'en ai besoin pour les boites de dialogue également.
Mais j'ai également besoin des paramètres plus loin dans la hiérarchie de MainWindow. Comment alors transmettre l'objet Settings aux widgets concernés ?
Je pourrais faire de la classe Settings un singleton mais j'entends çà et là que c'est le mal
Je pourrais aussi transmettre l'objet successivement à chaque widget mais je n'aime pas trop cette idée et ça implique de modifier beaucoup de code.
Bref je me retrouve avec un problème de conception, et je ne sais pas quelle en serait la meilleure solution.
Quel est votre avis sur le sujet ?
Cordialement.
Partager