从启动时运行的Qt程序中的文本文件中读取

时间:2015-04-09 08:48:53

标签: c++ qt embedded startup readfile

我在嵌入式Linux上运行Qt程序。我的程序需要能够从位于同一文件夹中的文本文件中读取一些信息。当我运行程序时,一切正常。

我现在想让我的程序在启动时启动,所以我添加了一行

/home/my_program_name -qws &

到/etc/init.d文件夹中的一个文件。当我重新启动我的机器时,程序运行但它似乎无法读取文本文件。看起来该程序启动时尚未初始化或读取该文件夹。

我应该提到/etc/init.d文件夹包含几个按字母顺序执行的文件,并且Qt程序是最后一个要执行的文件(即在最后一个文件的末尾)。

如何让程序在启动时访问文本文件?

1 个答案:

答案 0 :(得分:1)

为了打开具有相对路径的文件(例如,与应用程序相同的目录),您需要确保当前目录是程序的位置。

使用以下命令将当前目录设置为应用程序的目录。

int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(myapplication);

    QApplication a(argc, argv);
    QDir::setCurrent(qApp->applicationDirPath());
    ...

int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(myapplication);

    QApplication a(argc, argv);
    QDir::setCurrent(QFileInfo(argv[0]).absoluteDir().absolutePath());