【问题标题】:C++ Qt - QPixmap does not load with Qt Creator, but load when run via terminalC++ Qt - QPixmap 不使用 Qt Creator 加载,但在通过终端运行时加载
【发布时间】:2012-11-05 05:51:21
【问题描述】:

我正在使用 Qt 编写一个 GUI。当我使用QtCreator 运行应用程序时,我的图像无法加载,并且我收到以下错误:

QPixmap::scaled: Pixmap is a null pixmap

然而,当我通过命令行运行应用程序时,一切都完美显示。

为什么会这样?我怎样才能让QtCreator 正确加载我的图像?

注意:这些图片每张都只有 20ko,所以我读到的关于图片太大的内容不适用。

编辑:典型的文件名是'Images/Cards/Base/card01.jpg',其中Images 是我的项目目录的子目录(代码位于根目录)

【问题讨论】:

  • 在 QtCreator 和命令行之间,像素图文件名的相对路径名是否存在差异?你的像素图文件名是什么样的?你在使用资源文件吗?
  • 相对路径应该没有区别,因为图片和代码在同一个项目目录下。这是一个路径示例:Images/Cards/Base/card01.jpg 我不使用资源文件。那些是什么?
  • QtCreator 通常使用外源构建。即使你改变了这种行为,你也会遇到路径问题。尝试设置完整路径,您将看到您在 QtCreator 中的行为正确。并且最好使用资源来避免对路径感到头疼。
  • 你说得对,我需要放完整路径。我要使用资源。谢谢!

标签: qt qt-creator qpixmap


【解决方案1】:

如果您正在处理应该与应用程序捆绑在一起的图像,例如图标,那么您应该尝试使用Qt Resource system

这允许您将资源构建到实际项目中,并以独立于文件系统的语法引用它们。即::/icons/myIcon.png

很可能您在 Qt Creator 中文件的相对位置与命令行之间存在差异。

【讨论】:

  • 谢谢——我一定会用资源的!
猜你喜欢
  • 2023-03-19
  • 2011-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多