我想获取应用程序路径,但是当我在 Qt Creator 中运行应用程序时,applicationPath() 方法返回一个空字符串:
int main(int argc, char *argv[]) {
QLoggingCategory::setFilterRules("*.info=false\n");
QCoreApplication::setOrganizationName("company name");
QCoreApplication::setOrganizationDomain("companydomain.com");
QCoreApplication::setApplicationName("AppName");
#ifdef QT_DEBUG
//Install logging message handler
Logger::LogManager::setApplicationPath(QCoreApplication::applicationFilePath());
qInstallMessageHandler(Logger::LogManager::logMsg);
qDebug() << "built with debug";
#else
qDebug() << "built for release";
#endif
...
最佳答案
我已经通过更改例程来获取应用程序名称来解决此问题名称,因为这正是我所需要的:
Logger::LogManager::setApplicationName(QCoreApplication::applicationName());
无论如何,QCoreApplication::applicationFilePath()
和 QCoreApplication::applicationDirPath()
在创建 QCoreApplication
实例后可用。如果您需要在创建 QCoreApplication
实例之前获取应用程序路径,则需要引用 argv[0] 并根据您的用例解析它。
关于c++ - QCoreApplication 什么时候有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355035/