【问题标题】:Qt C++ QPixmap only works with absolute path, how to solve WITHOUT using Qt Resource?Qt C++ QPixmap 仅适用于绝对路径,如何在不使用 Qt 资源的情况下解决?
【发布时间】:2020-03-24 03:17:13
【问题描述】:

我似乎无法使用 Qt C++ 获得相对路径。我找到的所有答案都使用“:/img/...”,它使用 Qt Resource,但有没有更简单的解决方案?

编辑:项目文件夹是“C:/Users/MyName/Documents/Rectangle”。

更新:qDebug() << "Current dir:" << QDir::currentPath(); 显示“build-Rectangle-...-Debug”文件夹

绝对路径有效:QPixmap exitPng("C:/Users/MyName/Documents/Rectangle/img/exit.png");

相对路径不起作用:QPixmap exitPng("./Rectangle/img/exit.png");

感谢您的帮助

【问题讨论】:

  • 您运行的应用程序的当前工作目录是什么?
  • 相对路径来自哪里?应用程序安装位置?找到那个路径,用QDir方法结合相对路径,创建一个绝对路径。
  • qDebug()

标签: c++ qt qt-creator relative-path absolute-path


【解决方案1】:

相对路径应该可以工作。相对路径指的是当前工作目录。您可以通过打印QDir::currentPath() 来确认路径是否正确:

qDebug() << "Current dir:" << QDir::currentPath();

在某些情况下,相对路径可能不是您想要的。如果您更喜欢使用相对于可执行文件目录的路径,可以将您的相对路径与可执行文件路径组合起来:https://doc.qt.io/qt-5/qcoreapplication.html#applicationDirPath

【讨论】:

  • qDebug()
猜你喜欢
  • 2014-12-07
  • 2011-05-14
  • 2017-10-08
  • 2013-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-12
  • 1970-01-01
相关资源
最近更新 更多