【问题标题】:How to get current working directory path of a Qt application?如何获取 Qt 应用程序的当前工作目录路径?
【发布时间】:2013-07-15 04:17:48
【问题描述】:

我正在使用 Qt 库用 C++ 编写程序。我想获取我的程序的当前工作目录。我找到了 QDir::currentPath()QCoreApplication::applicationDirPath() 函数,但它们返回了应用程序可执行文件所在的目录。我不想获取包含应用程序可执行文件的目录。

我已经上传了描述我想要获取的路径的图片。

有人有解决办法吗?

谢谢!

【问题讨论】:

  • 在路径/文件夹中看不到可执行文件。
  • 我想要可执行文件而不想要二进制文件是什么意思?
  • QDir::currentPath() 当前应用目录。它不是包含可执行文件的目录,除非这两个目录碰巧相同。这就是您的情况,因为 Creator 以这种方式启动可执行文件。

标签: c++ qt


【解决方案1】:

您的应用程序无法知道项目在哪里,因为这是一个 qt-creator 选项。如果要在项目路径中运行二进制文件,则必须将工作目录 inside qt-creator 设置为正确的路径。然后QDir::currentPath()会返回你想要的路径。

转到:项目->[环境]->运行->工作目录

【讨论】:

  • 感谢您的快速回复。我明白你的回答。
【解决方案2】:

Checkout QCoreApplication::applicationDirPath(),它会尝试找出可执行文件所在的目录,而不是检查当前工作目录

【讨论】:

    【解决方案3】:

    源代码目录可通过qmake 变量获得,并且可以“定义”以在 C++ 源文件中访问:

    # Demo.pro:
    # set PROJECT_PATH to the "project path" with a trailing slash
    DEFINES += PROJECT_PATH=\"\\\"$${_PRO_FILE_PWD_}/\\\"\"
    
    // mainwindow.cpp
    qDebug() << "Able to find main.cpp?..." 
             << QFile::exists(PROJECT_PATH "main.cpp"));
    

    输出:

    Able to find main.cpp?... true
    

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 2014-03-10
      • 1970-01-01
      • 2013-03-23
      • 2012-04-12
      • 2010-12-28
      • 1970-01-01
      • 2019-02-18
      • 2019-01-27
      相关资源
      最近更新 更多