c++ - 如何使用 QTextStream 而不是 QDataStream 从 QTableView 进行加载保存?

标签 c++ c qt

我是 QT 的新手,所以当我尝试使用 QDataStream 将 QTableView 中的数据加载并保存到 txt 文件中时,我遇到了这样的问题:

txt 文件包含来自 tableview 的数据

我想要的只是txt文件中的数据易于读取,例如: 数据1;数据2 数据3;数据3

那么,如何使用 QTextStream 而不是 QDataStream,因为当我使用 QTextStream 时,我可以像这样在 txt 中写入输出:

QFile ofile("/home/rizi/LearnQT/tes");
ofile.open(QIODevice::ReadWrite | QIODevice::Text);
QTextStream out(&ofile);
out << line+"\n";

最佳答案

模型中的每个项目都包含多个文本。这就是为什么 write 函数需要 QDataStream 实例。如果只保存数据的文本部分适合您,那么您可以随时:

qint32 n(model->rowCount()), m(model->columnCount()); 
stream << n << m; 
for(int i=0; i<n; ++i) 
for(int j=0; j<m; j++) 
stream << model->item(i,j)->text();

关于c++ - 如何使用 QTextStream 而不是 QDataStream 从 QTableView 进行加载保存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43751118/

相关文章:

c++ - 为什么有些运算符只能作为成员函数重载,其他的作为友元函数重载,而其余的则两者都重载?

c++ - ptr 和 &ptr 的区别

c++ - QGraphicsScene 项目在两次 (x2) 位置绘制

multithreading - 可以取消并报告进度的QFuture

c++ - 使用两个条件迭代自定义对象的 vector

c++ - 无法解析函数 'sqrt' - Eclipse for Windows

条件跳转或移动取决于未初始化的值 strcat

c - *char 数组末尾的段错误

c - 用 C 编写 Shell,传递给函数时消失 char**

qt - 从 QFile 获取文件名?