ユーザーが入力したデータをQt4 UIでファイルに書き込む

私は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
あなたの質問に答えるには、あなたのコードや正確なメッセージの多くを見る必要があります。
追加された 著者 Michael Krelin - hacker,
ofstream myfile( "C:\\ testcase.txt"); else {cout << "ファイルを開くことができません";}} Iamがファイルを開いているコードの一部ですif(myfile.is_open()){myfile << ui-> lineEdit-> text();}エラーコードは次のとおりです: C:¥QtSDK¥QtCreator¥bin¥test-build-desktop-Qt_4_7_4_for_Deskt&zwnj; op _-_ MinGW_4_4__Qt_S&zwnj; DK__Debug \ .. \ test \ ma&zwnj; inwindow.cpp:198:error : 'myfile << QLineEdit :: text()const()'の 'operator <<'と一致しません。
追加された 著者 user976369,

2 答え

二重引用符を使用すると、実際に文字列を提供します。引用符内の式は評価されません。

ファイルに書き込むには、QTextStreamを使用する必要があります。

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

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

Qtドキュメントは素晴らしいので、詳細を確認してください

1
追加された
QDebugの力を使い、いくつかのデバッグステートメントを入れ、それが何をしているのかを追跡します。
追加された 著者 Nicholas Smith,
これを試しました、コンパイルエラーはありませんが、ファイルが作成されていないと私は理由を理解することができません。ドキュメンテーションも読んでください。助けにはならなかった。
追加された 著者 user976369,

You probably can't << QString directly, to std::ostream. Perhaps you need something like ui->lineEdit->text()() or convert it to some standard type otherwise, look up the docs.

0
追加された