したがって、テキストでいっぱいの複数のラベルがあり、これらすべてのラベルを一度に保存してQVector<QString>
. 以下のコードは私が試したもので、動作しますが、保存したファイルをロードしても何もロードされません。保存したファイルをメモ帳で確認したところ、そこに何かがあるので、ロード オプションが正しく機能していない可能性があります。よくわかりませんが、助けていただければ幸いです。また、これが悪い、またはひどく非効率的な方法のように思われる場合は、これを行うためのより良い方法を提案できるかどうかも尋ねます。事前に助けてくれてありがとう.
保存するためのコード:
void Tasks::on_pushButton_5_clicked()
{
const int length = 10;
QVector<QString> AllTasks(length);
AllTasks<<ui->label->text()<<ui->label_2->text()<<ui->label_3->text()<<ui->label_4->text()<<
ui->label_5->text()<<ui->label_6->text()<<ui->label_10->text()<<ui->label_11->text()<<
ui->label_12->text()<<ui->label_13->text();
QString fileName = QFileDialog::getSaveFileName(this,tr("Save All Tasks"),"", tr("Tasks(*.tsk);;All Files (*)"));
QFile file(fileName);
if(file.open(QIODevice::WriteOnly)){
QDataStream stream(&file);
stream<<AllTasks;
}
file.close();
}
およびロードするためのコード:
void Tasks::on_pushButton_6_clicked()
{
const int length = 10;
QVector<QString> AllTasks(length);
AllTasks<<ui->label->text()<<ui->label_2->text()<<ui->label_3->text()<<ui->label_4->text()<<
ui->label_5->text()<<ui->label_6->text()<<ui->label_10->text()<<ui->label_11->text()<<
ui->label_12->text()<<ui->label_13->text();
QString fileName = QFileDialog::getOpenFileName(this,tr("Save Tasks"),"", tr("Task(*.tsk);;All Files (*)"));
QFile file(fileName);
if(file.open(QIODevice::ReadOnly)){
QDataStream stream(&file);
stream.setVersion(QDataStream::Qt_4_8);
stream>>AllTasks;
}
file.close();
}