我使用QtSDK创建了一个UI,现在我想将用户在UI中输入的数据转换为静态文件。我怎样才能做到这一点? 例如,我试过:
ofstream myfile ("C:\\testcase.txt");
if (myfile.is_open()) {
myfile << "ui->lineEdit->text()";
} else {
cout << "Unable to open file";
}
并且它在双引号内打印,因为它在文件中,而不是打印在lineEdit中输入的文本,如果我写
myfile << ui -> lineEdit -> text();
没有双引号,代码显示以下错误。
mainwindow.cpp:198: error: no match for 'operator<<' in 'myfile << QLineEdit::text() const()'
应该怎么做?
答案 0 :(得分:1)
通过使用双引号,您实际上提供了一个字符串。不评估引号内的表达式。
您应该使用QTextStream来写入文件。
QFile file("myfile.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
return;
QTextStream filestream(&file);
filestream << ui->lineEdit->text();
答案 1 :(得分:0)
您可能无法<<
QString
直接std::ostream
。也许您需要ui->lineEdit->text()()
之类的东西或将其转换为某种标准类型,否则请查看文档。