1 pièce(s) jointe(s)
Case à cocher de désactivation dans un QTableWidget
Bonjour à toutes et à tous,
Je suis nouveau sur ce forum et débutant en programmation QT. Je suis à la recherche d'une âme charitable capable de m'apporter ses lumières sur un petit souci que je rencontre dans la réalisation d'un programme d'encodage.
J'ai passé des heures à écumer le web à la recherche d'une solution mais rien n'y a fait.
J'ai créer une fenêtre, une série d'onglet et dans l'un d'eux, un QTableWidget. (tout cela dans Qt designer).
L'un de mes objectifs était d'inclure des Widget de type combobox, checkbox et pushbutton dans les cellules de certaines colonne.
Pour ce faire j'ai inclu mes widgets dans mon header de la façon suivante:
Code:
QList<QPointer<QComboBox> > combo;
J'ai ensuite appelé ce widget dans mon cpp de la façon suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11
| QPointer<QComboBox> encodeur = new QComboBox (this); // ComboBox d'encodeur
{
encodeur->setEditable(true);
QStringList personne;
personne << ""
encodeur->addItems(personne);
combo.append(encodeur);
} |
J'insère ensuite le widget ainsi:
Code:
1 2 3 4 5
|
const int ligne = ui ->tableWidget->rowCount();
ui->tableWidget->verticalHeader()->setVisible(false);
ui->tableWidget->insertRow(ligne);
ui->tableWidget->setCellWidget(ligne, 2, encodeur); |
J'ai fais ainsi pour chaque widget et voici ce que cela donne :
Pièce jointe 145191
Mon objectif actuel est de faire en sorte que lorsque la checkbox est cochée, toute les cellules de cette ligne soit "désactivée", "figée", bref qu'elles ne soient plus modifiable après avoir été remplie. (un objectif future serra aussi que lorsque la checkbox serra cochée, la ligne serra copiée dans un fichier txt de sauvegarde...)
Et c'est la que ça coince. Je vois assez bien comment y parvenir dans l'absolu mais le fait que mes widget soient dans des cellules compléxifie pas mal l'affaire apparement.
j'ai essayé ce genre de chose mais rien n'y fait, mes Combobox ne sont pas reconnue:
Code:
1 2 3 4
| void MainWindow::on_validation_clicked()
{
encodeur->setEnable (false);
} |
J'ai également essayé de modifier l'appel de mes widget mais ils n'apparaissent plus dans les cellules du-coup.
Quelqu'un saurait t'il m'aider et m'expliquer?
Merci d'avance :)