Запіс Уведзеныя карыстачом дадзеныя, у Qt4 UI, у файл

Я стварыў карыстацкі інтэрфейс з дапамогай QtSDK і цяпер я хачу, каб атрымаць дадзеныя, уведзеныя карыстачом, у карыстацкім інтэрфейсе, у статычны файл. Як я магу гэта зрабіць? Напрыклад, я спрабаваў:

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"); калі (myfile.is_open ()) {MyFile << ui-> lineEdit-> тэкст ();} яшчэ {соиЬ << "Немагчыма адкрыць файл";} з'яўляецца часткай коды, дзе І адкрыцця файла для запісу і прыведзенай памылкі C: \ QtSDK \ QtCreator \ Bin \ тэст-нарошчванне рабочага стала-Qt_4_7_4_for_Deskt & ZWNJ; ЦІТ _-_ MinGW_4_4__Qt_S & ZWNJ; DK__Debug \ .. \ тэсту \ м & ZWNJ; inwindow.cpp: 198: памылка : ня падыходзіць для 'аператара <<' ў 'MYFILE << QLineEdit :: тэкст() Const ()'
дададзена аўтар 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
дададзена