[QT C++] créer un tableau de QLabel?
Fermé
Slici
Messages postés
428
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
26 octobre 2013
-
4 janv. 2009 à 15:03
Dhampir - 29 oct. 2009 à 09:50
Dhampir - 29 oct. 2009 à 09:50
3 réponses
Au lieu d'utiliser un tableau de QLabel, il est, dans la philosophie de Qt voire du C++, plus judicieux d'utiliser des listes.
Déclaration:
Déclaration:
QList<QLabel*> listLabel;Remplissage:
listLabel << new QLabel ("texte", parent);Utilisation:
listLabel[index]->setText ("nouveauTexte");Nota: Si on n'a pas besoin de modifier le texte du label, ce qui est souvent le cas, il est inutile de mémoriser le pointeur sur les labels créés, car ils seront automatiquement supprimés lors de la suppression du parent (philosophie Qt).
togodo
Messages postés
148
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
19 août 2009
8
4 janv. 2009 à 19:46
4 janv. 2009 à 19:46
Attends j'ai fais ca il y a pas longtemps et ca marchait.
togodo
Messages postés
148
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
19 août 2009
8
4 janv. 2009 à 19:54
4 janv. 2009 à 19:54
Bon c'était un tableau à deux dimensions contenant des pointeurs de QLabel.
Donc pour un normale ca donne
QLabel ***label; // pour la déclaration //initialisation label = new QLabel**[6]; for(int i=0;i<6;i++) { label[i]=new QLabel*[7]; } for(int i=0;i<6;i++) { for(int j=0;j<7;j++) { label[i][j]=new QLabel; label[i][j]->setText(""); label[i][j]->setPixmap(QPixmap("c:/images/casevide.jpg")); gridLayout->addWidget(label[i][j],i+1,j+0); } } l'utilisation label[j][i]
Donc pour un normale ca donne
QLabel **label; // pour la déclaration //initialisation label = new QLabel*[6]; for(int i=0;i<6;i++) { label[i]=new QLabel(""); } l'utilisation label[j]->
Dhampir
>
togodo
Messages postés
148
Date d'inscription
vendredi 19 septembre 2008
Statut
Membre
Dernière intervention
19 août 2009
29 oct. 2009 à 09:50
29 oct. 2009 à 09:50
salut!
je viens de voir cette methode, j'ai essayé de l'appliquer a mon cas:
je dois faire un echiquier 8*8.
en modifiant les parametres de boucle, il compile, se lance, mai m'affiche pas mes label (qui sont des images)ci joint, mon code:
int main( int argc, char** argv )
{
QApplication app(argc, argv);
MaFenetre fenetre;
QLabel ***label; // pour la déclaration
QGridLayout * gridLayout =new QGridLayout;
//initialisation
label = new QLabel**[8];
for(int i=0;i<8;i++)
{
label[i]=new QLabel*[8];
}
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
label[i][j]=new QLabel;
label[i][j]->setPixmap(QPixmap("/images/Chess_pawnb_icon.png"));
gridLayout->addWidget(label[i][j],i,j+0);
}
}
fenetre.setLayout(gridLayout);
// fenetre.commencer_partie();
fenetre.show();
return app.exec();
}
si jamais tu pouvais m'aidé, ça serait super!
je viens de voir cette methode, j'ai essayé de l'appliquer a mon cas:
je dois faire un echiquier 8*8.
en modifiant les parametres de boucle, il compile, se lance, mai m'affiche pas mes label (qui sont des images)ci joint, mon code:
int main( int argc, char** argv )
{
QApplication app(argc, argv);
MaFenetre fenetre;
QLabel ***label; // pour la déclaration
QGridLayout * gridLayout =new QGridLayout;
//initialisation
label = new QLabel**[8];
for(int i=0;i<8;i++)
{
label[i]=new QLabel*[8];
}
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
label[i][j]=new QLabel;
label[i][j]->setPixmap(QPixmap("/images/Chess_pawnb_icon.png"));
gridLayout->addWidget(label[i][j],i,j+0);
}
}
fenetre.setLayout(gridLayout);
// fenetre.commencer_partie();
fenetre.show();
return app.exec();
}
si jamais tu pouvais m'aidé, ça serait super!
Slici
Messages postés
428
Date d'inscription
lundi 7 mai 2007
Statut
Membre
Dernière intervention
26 octobre 2013
86
4 janv. 2009 à 20:19
4 janv. 2009 à 20:19
merci beaucoup de votre aide, je vais essayer ca !