Salut,
je travail avec une liste de 10 QAction, utilisé en tant qu'item d'un menu du systeme tray.
j'ai créé une liste de 10 QString, chacun va etre modifié pendant l'utilisation de l'application
et tout ca x9, ca fait 9 listes de 10 actions, et 9 listes de 10 string.
en fait les strings sont des url lu dans un fichier xml, durant l'utilisation de l'application, le xml va changer et les listes de string vont se réactualisé.
mon but est que lorsque je clic sur un item, j'ouvre une page web du lien contenu dans l'xml.
je bloque sur le connect :
articlesALaUne est la première des 9 liste de QAction
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 for(int i =0; i<10; i++){ connect(articlesALaUne[i], SIGNAL(triggered()), this, SLOT(openUrl(i,AppEnums::ArticleTypeALaUne))); } void Window::openUrl(int i, AppEnums e){ QString urlTarget; if(e==AppEnums::ArticleTypeALaUne) urlTarget=AppVars::alauneShortcuts[i]; else if(e==AppEnums::ArticleTypeMonde) urlTarget=AppVars::mondeShortcuts[i]; else if(e==AppEnums::ArticleTypePolitique) urlTarget=AppVars::politiqueShortcuts[i]; else if(e==AppEnums::ArticleTypeSocSant) urlTarget=AppVars::socsantShortcuts[i]; else if(e==AppEnums::ArticleTypeEco) urlTarget=AppVars::ecoShortcuts[i]; else if(e==AppEnums::ArticleTypeScience) urlTarget=AppVars::scienceShortcuts[i]; else if(e==AppEnums::ArticleTypeArt) urlTarget=AppVars::artShortcuts[i]; else if(e==AppEnums::ArticleTypeSport) urlTarget=AppVars::sportShortcuts[i]; else if(e==AppEnums::ArticleTypePeople) urlTarget=AppVars::peopleShortcuts[i]; QDesktopServices::openUrl(QUrl(urlTarget)); }
AppVars::alauneShortcuts est la première des listes des QString
j'ai seulement écrit la boucle for de la première liste
AppEnums est une enum class
void openUrl(int i, AppEnums e); a été écrit en tant que public slot dans le .hpp
si vous avez besoin d'autre détail, je suis assez réactif
l'erreur : pas de problème à la compilation, à l'execution j'ai 10 fois le message :QObject::connect: No such slot Window::openUrl(i,AppEnums::ArticleTypeALaUne)
et bien sur l'ouverture de page web ne fonctionne pas.
quelqu'un aurait une solution?
Partager