[QTableWidget] Veux tu bien te fermer ?
Re bonjour,
De retour pour ne nouvelles aventures (problèmes) Qtesques !
Pour résumer, je fais une application MDI, intégrant différents types de Widgets.
J'arrive à intégrer des QTextEdit et des QMovie sans problèmes. Ce n'est pas la même chose pour les QTableWidget.
La création se passe très bien, l'affichage aussi. Le problème survient lorsque je ferme une QtableWidget(clic sur la croix en haut à droite). En effet, mon debuger se lance et me renvoit sur la méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
void QTableModel::clearContents()
{
for (int i = 0; i < tableItems.count(); ++i) {
if (tableItems.at(i)) {
tableItems.at(i)->view = 0;
==> delete tableItems.at(i);
tableItems[i] = 0;
}
}
reset();
} |
Code:
1 2
|
Unhandled exception at 0x655f9135 (QtGuid4.dll) in MDI2.exe: 0xC0000005: Access violation reading location 0xdddddddd. |
Je ne comprends pas pourquoi le delete n'arrive pas à supprimer mes Items.
Je vous joins aussi le code du remplissage de ma table, l'erreur vient sans doute de là.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
----------------------------------------------------------------
QTableWidget *table;
QTableWidgetItem *tableItem;
----------------------------------------------------------------
void MainWindow::newTable()
{
static int tableNumber = 1;
table = new QTableWidget(10,3,this);
curFile = tr("Tableau%1.txt").arg(tableNumber++);
table->setWindowTitle(curFile);
this->tableInit();
this->mdiArea->addSubWindow(table);
table->show();
}
void MainWindow::tableInit()
{
tableItem = new QTableWidgetItem("Colonne 1");
this->table->setItem(0,0,tableItem);
tableItem = new QTableWidgetItem("Colonne 2");
this->table->setItem(0,1,tableItem);
tableItem = new QTableWidgetItem("Colonne 3");
this->table->setItem(0,2,tableItem);
...
} |
Merci encore pour votre aide. Désolé pour la lourdeur du post.:?
Qteusement,
G.