Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.3.1 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Matrice d'objets QTableWidgetItem

11 May modifié dans Qt / Langage C++
Bonjour,

Je souhaite réaliser une matrice de checkbox pour pouvoir configurer les différents IAC d'une carte EMV virtuel, donc j'ai utiliser avec QT un TabWidget et je l'ai remplie des différentes données que je souhaite configurer (ces données correspondent à la configuration de 5 octets par IAC (Default, Online et Denial).

J'ai donc fait un tableau de 22 lignes par 3 colonnes. et je voudrais que chaque cases soit composées d'une case à cocher pour en fait savoir si l'on veux ou pas ajouter la données qui correspond à la ligne de la case par rapport à la colonne.

Voici à quoi ça ressemble : image.

Donc ici on voit que j'ai remplie les cases avec ce code :
void cardEditInterface::initMatriceIAC()
{
for(int y = 0; y<3; y++)
{
for(int x = 0; x<22 ; x++)
{
QTableWidgetItem *checkBoxItem = new QTableWidgetItem();
checkBoxItem->setCheckState(Qt::Unchecked);
ui->tab_IAC->setItem(x,y,checkBoxItem);
}
}
}
Donc c'est un ajout d'item "set" Unchecked pour faire apparaître la checkbox.

Le problème c'est que pour configurer mes octets j'ai besoin de savoir si la case a été coché ou non. Et avec cette méthode je ne connais pas le nom de l'objet qui me permettrez de savoir si la case est checked ou non..

Donc bien sur j'ai voulu faire un tableau multidimensionnel d'objet qui serai l'image de la matrice qui me permettrai du coup de sélectionner la case par ses index, mais je ne suis pas parvenu à quelque chose qui compile et qui soit propre surtout.

Je viens donc chercher ici une solution miracle pour mon problème en espérant avoir été clair.

Merci d'avance.

Réponses

  • Bonjour, je suis pas sûr d'avoir bien tout pigé mais pour savoir si la case est cochée, il te suffit de demander
    ui->tab_IAC->item(x,y)->checkState()
Connectez-vous ou Inscrivez-vous pour répondre.