1
  1. 我在 Qt Creator 的解决方案资源管理器中创建了一个新文件 (data.xml),该文件自动添加到Otherfiles 文件夹中。
  2. 我创建了一段从该文件中读取数据的代码,但出现了一个问题:找不到该文件。
  3. 我将文件复制到c://data.xml并将代码中的路径也更改为c://data.xml,一切正常。

我的问题是:如何处理这些相对路径?

这是代码:

    QString filename="data.xml";
    QVector<Student> students;
    QFile file(filename);
    if (!file.open(QFile::ReadOnly | QFile::Text))
    {
        return;
    }
    QDomDocument doc;
    if (!doc.setContent(&file))
    {
        file.close();
        return;;
    }
    file.close();
    QDomElement root = doc.documentElement();
    QDomElement studentNode = root.firstChildElement("Student");
    while(!studentNode.isNull())
    {
        QString firstName=studentNode.firstChildElement("FirstName").text();
        QString lastName=studentNode.firstChildElement("LastName").text();
        int age=studentNode.firstChildElement("Age").text().toInt();
        students.push_back(Student(firstName, lastName, age));
        studentNode=studentNode.nextSiblingElement("Student");
    }

这是项目文件:

QT       += core gui xml

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = GUI1
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    editdialog.cpp \
    student.cpp

HEADERS  += mainwindow.h \
    editdialog.h \
    student.h

FORMS    += mainwindow.ui \
    editdialog.ui

OTHER_FILES += \
    data.xml
4

1 回答 1

2

所有此类路径都是相对于您启动应用程序的目录计算的。QtCreator 从它们自己的目录启动程序。在您的情况下,我建议您将此行添加到您的pro文件中:

DESTDIR = $$PWD
于 2013-04-10T16:16:23.170 回答