Hello,
I have QTab object and in one tab, i have QTable on it. When the form unloads, it crashes.
The form is called from main as pointer
my h file
#ifndef REPORTWIN_H
#define REPORTWIN_H
#include <QDialog>
#include "tmain.h" //1
#include <QCloseEvent>
namespace Ui {
class reportwin;
}
class reportwin : public QDialog
{
Q_OBJECT
public:
explicit reportwin(QWidget *parent = 0);
~reportwin();
TMain *mainparentform; //2
protected:
void closeEvent(QCloseEvent *event); //3
private slots:
private:
Ui::reportwin *ui;
void preparegraph(int graphtype);
void initializeModel(QSqlTableModel *model);
QPointer <QTableWidget> table;
QHBoxLayout *layout;
};
#endif // REPORTWIN_H
here is how i create the table
layout=new QHBoxLayout(this);
table = new QTableWidget(rows, cols, this);
QStringList Header;
Header << " Date & Time" << " Number " << " Average Typing Speed " << " % Correct " << " % completed";
for (int r=0; r<rows; ++r)
{
for (int c = 0; c < cols; ++c)
{
QString character = Header.at(c);
table->setHorizontalHeaderItem(c, new QTableWidgetItem(character));
QTableWidgetItem *dateitem = new QTableWidgetItem();
dateitem->setText(practisedata.datestring.at(r));
table->setItem( r, 0, dateitem );
QTableWidgetItem *number = new QTableWidgetItem( practisedata.log1_practisetestnumber.at(r));
table->setItem( r, 1, number )
}
}
table->setItemPrototype(table->item(rows -1, cols - 1));
table->setGeometry(QRect(55,90,660,300));
//table->show();
layout->addWidget(table);
this->ui->Training_tab1->setLayout(layout);
here is my main file
QPointer <reportwin> report = new reportwin(0);
report->mainparentform=this;
//report->deleteLater();
this->hide();
report->exec();
report->done(1);
// //delete report; // still not working, data still exist even after call
// QObjectCleanupHandler *cleaner=new QObjectCleanupHandler;
// cleaner->add(report);
// cleaner->deleteLater();
qDebug() << " exit report" << report.isNull();
I tried delete later but it crashes, i tried the object cleaner but same result. I tried to delete the pointer but the same. I understand from the QT crash report that it has difficulty deleting the QTab or the QTableWidget
Any help is appreciated
↧