将用户在Qt4 UI中输入的数据写入文件

时间:2011-10-28 11:06:09

标签: c++ qt

我使用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()'

应该怎么做?

2 个答案:

答案 0 :(得分:1)

通过使用双引号,您实际上提供了一个字符串。不评估引号内的表达式。

您应该使用QTextStream来写入文件。

QFile file("myfile.txt");
if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
    return;

QTextStream filestream(&file);
filestream << ui->lineEdit->text();

Qt Documentation is great, so check it for more details

答案 1 :(得分:0)

您可能无法<< QString直接std::ostream。也许您需要ui->lineEdit->text()()之类的东西或将其转换为某种标准类型,否则请查看文档。