我正在尝试在我正在制作的简单QT 5.5游戏中实现高分功能。我可以用当前的高分读取它,但如果玩家的得分比目前的高分好,我希望将新名称和高分写入同一个文件。目前,我收到错误消息QIODevice :: write(QFile,":\ images \ scores.txt"):设备未打开。我的scores.txt文件包含在我的.qrc。
中这是我的代码:
QFile myFile (":/images/scores.txt");
myFile.open(QIODevice::ReadOnly);
QTextStream in(&myFile);
QString qName = in.readLine();
QString qScore = in.readLine();
myFile.close();
bool ok;
if(qScore.toInt() < myScore)
{
QInputDialog* inputDialog = new QInputDialog();
inputDialog->setOptions(QInputDialog::NoButtons);
qName = inputDialog->getText(NULL ,"High Score!",
"Enter Name:", QLineEdit::Normal,
"Grandma", &ok);
if (ok && !qName.isEmpty())
{
qDebug() << "Good Job!";
}
qScore = QString::number(myScore);
string nameS, scoreS;
nameS = qName.toStdString();
scoreS = qScore.toStdString();
myFile.open(QIODevice::WriteOnly);
QTextStream out (&myFile);
out << nameS.c_str() << endl << scoreS.c_str();
myFile.flush();
myFile.close();
}
答案 0 :(得分:1)
如上所述,您无法写入~/.nixpkgs/config.nix
资源文件。您可以写入磁盘上的任意文件,但这会引发存储位置的问题。处理此问题的一种方法是使用tf.train.shuffle_batch
。
它非常易于使用:tf.train.start_queue_runners()
来自文档:
QSettings类提供持久性 与平台无关的应用程序设置。
用户通常 期待应用程序记住它的设置(窗口大小和 职位,选项等)跨会议。这些信息经常出现 存储在Windows上的系统注册表和属性列表文件中 在OS X和iOS上。在Unix系统上,在没有标准的情况下,很多 应用程序(包括KDE应用程序)使用INI文本文件。
QSettings是一个抽象 这些技术使您能够保存和恢复应用程序 以便携方式设置。它还支持自定义存储格式。