文件输入 - 文件未被读取QT

时间:2013-02-12 11:07:29

标签: c++ file qt input

我对C ++和QT很新。基本上,我刚刚完成了Java的工作,但我们正在使用C ++来创建一个模块,我们必须设计一个Zork游戏UI。我计划创建Room对象的方法是使用roomnum.long,.short和.name构建Room,用于long desc,short desc和name。

对于第一个房间,我只是暂时加载文件,直到我正确地进入对象等。但是,我似乎无法将文件写入文本标签。返回“重启游戏等”确实按下按钮,但不是文件的内容。 Rooms文件夹与源文件位于同一文件夹中(本例中为islandmain.cpp)

有什么想法吗?

void TheIslandMain::on_startButton_clicked()
{
    ui->roomDesc->setText(readFirstRoom("/Rooms/room1.long"));
    ui->roomDesc->setWordWrap(true);
}

QString TheIslandMain::readFirstRoom(QString filename)
{
    QFile mFile(filename);

    if (!mFile.open(QFile::ReadOnly | QFile::Text))
    {
        qDebug() << "Could not open file for reading Line 31";
        return "Could not load file. Please restart game.";
    }

    QTextStream in(&mFile);
    QString fileInput = in.readAll();

    qDebug() << fileInput;

    mFile.close();

    return fileInput;
}

2 个答案:

答案 0 :(得分:0)

使用bool QFile::exists(const QString& path)检查文件是否存在,以及它是否只包含函数中的文件名或整个路径(需要路径)

soo long zai

答案 1 :(得分:0)

/Rooms/room1.long指向root中的文件,然后指向Rooms,然后指向room1.long作为文件。如果Rooms是它需要相对于应用程序本身的目录,那么如果Rooms与您的应用程序位于同一目录中,那么它只是Rooms/room1.long,如果它位于更高的位置等级../Rooms/room1.longResources/Rooms/room1.long