我正在使用此代码从纯文本文件中读取一些值。
但问题是默认值无法读取。我用调试器查看了这个,它说QFile文件之后我的文件对象的exists属性为false(" defaults.txt");线。
我尝试将此文件放在多个位置,但Qt无法检测到它。
这个文件在开发时应该放在哪里?
我试过了:
C:\编码\累积坐标 - Desktop_Qt_5_3_0_MinGW_32bit-调试\调试\ defaults.txt
void MainWindow::readDefaults() {
QFile file("defaults.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;
int count = 0;
QTextStream in(&file);
while (!in.atEnd()) {
QString line = in.readLine();
switch (count)
{
case 0:
deltaX->setValue(line.toDouble());
break;
case 1:
deltaY->setValue(line.toDouble());
break;
case 2:
deltaZ->setValue(line.toDouble());
break;
}
count++;
}
}
答案 0 :(得分:2)
如果指定的路径不是绝对路径,则将其视为与进程'工作目录相关。这不是Qt特定的。常见操作系统上的所有本机文件相关功能都以相同的方式工作。
通常,工作目录可以是任何东西。这取决于您运行该过程的方式。例如,如果从shell运行它,则默认情况下与shell的工作目录相同。它可能与包含可执行文件或项目源的目录不同。
您可以查看Qt Creator使用的默认工作目录。选择左侧面板上的“项目”图标,切换到“运行”选项卡以查看运行设置。它将包含“工作目录”字段。您可以设置任何工作目录。默认情况下它与构建目录相同。
指定输入文件的常用策略是从应用程序参数中读取它。使用QCoreApplication::arguments()
获取参数列表(丢弃第一个参数,因为它是exe文件名),并在项目的Qt Creator中的运行设置的“参数”字段中指定文件路径。在这里指定完整路径是可以的,所以你不必担心工作目录。
答案 1 :(得分:0)
build directory
而不是project directory
。
尝试将文件放在可执行文件的位置,它应该可以正常工作。