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

Read from a text file in a Qt program running at startup

本文关键字:文本 文件 读取 程序 Qt 启动 运行      更新时间:2023-10-16

我正在嵌入式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());