Qt - 从QTableView

时间:2016-02-20 12:56:40

标签: c++ qt save load qtablewidget

我试图将QTableWidget的数据保存到外部文件中。首先,我不知道从哪里开始,因为我之前没有做过这个,所以请举个例子。其次,如果我保存一个QTableWidget的数据,它必须以表格格式保存,那么我将它保存在哪种类型的文件中?你可以告诉我,我真的不知道该怎么做。我还想将数据加载回此表。所有和任何帮助表示赞赏,谢谢!如果你也可以解释一下你做了什么,那就太棒了谢谢你!

编辑: 谢谢大家的帮助,首先我将QTableWidget更改为QTableView,其次我阅读了Marek R链接的另一个问题,它有很大的帮助,但现在我得到了sigsegv错误。我不知道为什么。以下代码用于保存功能:

QStandardItem *rowitems = new QStandardItem();
QStandardItem *columnitems = new QStandardItem();
QList<StandardItem*> rowitem;
rowitem << rowitems;
QList<StandardItem*> columnitem;
columnitem << columnitems;
model->appendRow(rowitem);
model->appendColumn(columnitem);

void MainWindow::on_actionsave_Timetable_triggered()
{
if (file.open(QFile::WriteOnly))
{
    QDataStream stream(&file);
    qint32 rows = model->rowCount();
    qint32 columns = model->columnCount();
    stream<<rows<<columns;
    for(int i = 0 ; i<rows;++i){
        for(int j = 0; j < columns; ++j){
             model->item(i,j,)->write(stream);
        }
     }
    file.close();
}
}

代码的顶部是构造函数(构造函数还包含用于设置QTableView模型的所有其他内容)。我不知道该怎么做。

编辑2: 弄清楚我的问题,如果你把TableView中的一个空格留空,就不能保存文件,即它必须填充像空格,角色等等。谢谢你们。

0 个答案:

没有答案