Salut a tous,

Alors je vous explique ce que je veux faire :
J'ai edité un fichier xml avec une certaine hierarchie, contenant des menus et les éléments de ces menus, sous la forme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<Menu  >
 <element>
     <nom></nom>
     <path></path>
 </element>
  <element>
     <nom></nom>
     <path></path>
 </element>
</Menu>
Je veux maintenant créer un menu dans lequel il y aura chaque élément de ce fichier xml. Je me sers du nom pour afficher dans le menu, et à l'aide du path je lance ce que contient le menu ( document ou raccourci vers application) à l'aide d'un StartDetached.

Cependant voila, pour chaque élément de mon menu, je dois créer une action,
que j'utiliserais lors de la création de mon Qmenu (avec Addaction).

La seule solution pour créer plusieurs actions (le même nombre que celui d'éléments) que j'ai trouvée, c'est un QVector<QAction *>.

Lorsque je crée une action, je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
QVector<QAction *> list;
list.append(new QAction((nom),this));
Et pour ajouter une action à un menu, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
for(int j=0;j<=i;j++)    // i est mon nombre d'actions crées, je fais un menu   avec i actions.
 
     {
     menu.addAction(list[j]);
    }

Le problème est la : lorsque le menu devrait s'afficher : "prog.exe a cessé de fonctionner" ...... Cela vient surement de mon appel a list[i] dans addaction, mais je ne vois pas ou ni pourquoi ??

Merci pour vos réponses