Salut.
Je suis entrain le programmer le jeu demineur avec qt. J'ai fais tout d'abord un tableau de QPushButton et un GridLayout:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    QPushButton Btb[10][10];
    QGridLayout Lgrid;
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
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);
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
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)));
        }
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).
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:
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()));
        }
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
Bouton(QPushButton *parent = 0);
qt creator m'a affiché une erreur de compilation (je crois de type exit collect id, ou une chose comme ça)...
Donc ma 2éme question est comment faire une classe qui hérite de QPushButton.
Merci beaucoup.