Итак, у меня есть несколько ярлыков с текстом, и я хотел бы сохранить все эти ярлыки за один раз в QVector<QString>
. Код ниже - это то, что я пробовал, и он работает, но когда я загружаю сохраненный файл, ничего не загружается, я проверил сохраненный файл с помощью блокнота, и там есть вещи, так что, возможно, опция загрузки работает неправильно? Я не уверен, но помощь приветствуется. Я также спрашиваю, можете ли вы предложить лучший способ сделать это, если это кажется плохим или ужасно неэффективным способом, снова спасибо за помощь заранее.Qt - Как сохранить и загрузить 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();
}
я получаю сообщение об ошибке, и он говорит: не подходит для 'оператора >>' (типы операндов QVector и QString) –
О, вы будете необходимо выполнить ручную индексацию. На самом деле такого оператора нет. – LogicStuff
Можете ли вы объяснить, как? Я не лучший, когда дело доходит до qt. –