Пайдаланушы деректерді 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, көзі
myfile («C: \\ testcase.txt») арқылы ; if (myfile.is_open ()) {myfile << ui-> lineEdit-> text ();} else {cout << «файлды ашу мүмкін емес;} - файлды ашатын Iam кодтың бөлігі жазу үшін және көрсетілген қате 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 : 'operator' үшін << myfile >> << QLineEdit :: text() 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
қосылды