在启动时从 Qt 程序 运行 中的文本文件中读取
Read from a text file in a Qt program running at startup
我正在 运行在嵌入式 linux 上安装 Qt 程序。我的程序需要能够从位于同一文件夹中的文本文件中读取一些信息。当我 运行 程序一切正常时。
我现在想让我的程序在启动时启动,所以我添加了行
/home/my_program_name -qws &
到 /etc/init.d 文件夹中的文件之一。当我重新启动我的机器时,程序 运行s 但它似乎无法读取文本文件。程序启动时,该文件夹似乎尚未初始化或读取。
我应该提到 /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());
我正在 运行在嵌入式 linux 上安装 Qt 程序。我的程序需要能够从位于同一文件夹中的文本文件中读取一些信息。当我 运行 程序一切正常时。
我现在想让我的程序在启动时启动,所以我添加了行
/home/my_program_name -qws &
到 /etc/init.d 文件夹中的文件之一。当我重新启动我的机器时,程序 运行s 但它似乎无法读取文本文件。程序启动时,该文件夹似乎尚未初始化或读取。
我应该提到 /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());