c++ - 在启动时运行的 Qt 程序中读取文本文件

标签 c++ qt embedded startup readfile

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

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

/home/my_program_name -qws &

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

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

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

最佳答案

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

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

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());

关于c++ - 在启动时运行的 Qt 程序中读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533872/

相关文章:

C++ 字符串到 bool 数组

c++ - 强制 GCC 在寄存器中传递参数

C++ 现场声音控制

c++ - 通过引用传递对象时出错

c++ - 如何在 QString 的 asctime 中删除换行符

c++ - Qt 应用程序未运行

c++ - 继承自ifstream

c - w25q128fw 外部 spi flash 不响应 stm32 发送的命令

algorithm - 什么是在线降尺度算法?

c - 使用 union 标准化位字段(使它们可移植)