Salut.
Je suis entrain le programmer le jeu demineur avec qt. J'ai fais tout d'abord un tableau de QPushButton et un GridLayout:
Puis, dans le constructeur de la fenetre principale j'ai rempli le grd par les boutons:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 QPushButton Btb[10][10]; QGridLayout Lgrid;
Jusqu'à maintenant, tout allait bien. Le problème a apparu lorsque j'ai voulu assigner à chaque bouton le slot approprié. J'ai pensé au début à faire un slot relatif à ma fenetre appele "appuyer" qui prend comme parametres i et j, mon code devient ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (int i=0;i<10;i++) for(int j=0;j<10;j++) Lgrid.addWidget(&Btb[i][j],i,j,1,1); Lgrid.setHorizontalSpacing(0.5); Lgrid.setVerticalSpacing(0.5);
Malheureusement, j'ai réalisé que le slot ne peut pas avoir des parametres (ou bien c'est ce que j'ai cru vu le message d'erreur).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (int i=0;i<10;i++) for(int j=0;j<10;j++) { QObject::connect(&Btb[i][j],SIGNAL(clicked()),this,SLOT(appuyer(i,j))); }
Donc, ma première question: est-t-il possible de faire un slot qui prend des parametres et qui peut etre utiilisé dans mon programme?
J'ai réflechi ensuite à une autre méthode, et j'ai pensé à faire une classe "bouton" qui herite de "QPushButton" afin de lui attribuer un slot "appuyer", et tous mes boutons heritent ainsi de cette classe. Le code sera:
Encore une fois, ça n'a pas marché: Je ne sais pas comment doit etre le constructeur de "Bouton", et lorsque j'ai essayé de faire une chose simlaire au constructeur de la classe fenetre, c à d:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (int i=0;i<10;i++) for(int j=0;j<10;j++) { QObject::connect(&Btb[i][j],SIGNAL(clicked()),&Btb[i][j],SLOT(appuyer())); }
qt creator m'a affiché une erreur de compilation (je crois de type exit collect id, ou une chose comme ça)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Bouton(QPushButton *parent = 0);
Donc ma 2éme question est comment faire une classe qui hérite de QPushButton.
Merci beaucoup.
Partager