Qt 为什么我的QPaint实例仅在使用特定的.png时才绘制?

Qt 为什么我的QPaint实例仅在使用特定的.png时才绘制?,qt,qpainter,qimage,Qt,Qpainter,Qimage,我正在用Qt Creator创建一个简单的“青蛙”类型的游戏。 我设法弄到了一个有4个方向键的播放器和一辆能在屏幕上自动移动的汽车。我有单独的球员,汽车和蛙人类 Frogger类在paintEvent中绘制图像: 但我遇到了一个问题,试图加载一个不同的形象的汽车。如果我使用image.load(“player.png”)对于汽车和玩家构造器,我可以看到汽车作为玩家图像在屏幕上移动,以及根据我的按键移动的玩家 但是,如果我用其他任何东西替换图像(所有图像都在同一文件夹中;我还尝试将其添加到Qt C

我正在用Qt Creator创建一个简单的“青蛙”类型的游戏。 我设法弄到了一个有4个方向键的播放器和一辆能在屏幕上自动移动的汽车。我有单独的球员,汽车和蛙人类

Frogger类在paintEvent中绘制图像:

但我遇到了一个问题,试图加载一个不同的形象的汽车。如果我使用
image.load(“player.png”)
对于汽车和玩家构造器,我可以看到汽车作为玩家图像在屏幕上移动,以及根据我的按键移动的玩家


但是,如果我用其他任何东西替换图像(所有图像都在同一文件夹中;我还尝试将其添加到Qt Creator的“其他文件”下),例如“car.png”,它似乎不会显示。我尝试了其他的图片,但是这些图片也没有出现在玩家面前。你知道为什么会这样吗?我注释掉了我的
autoMove()
函数,没有任何变化,因此我认为这与我如何实现移动无关。关于我可能遗漏的内容,您有什么想法吗?

我想您可以在加载图像时减少过程中可能出现的错误位置。通过检查
QImage::load
的返回值来确认这一点:

QString path = "player.png";
bool loadSuccess = image.load(path);
qDebug() << "Image" << path << "loaded? =>" << loadSuccess;
如果打印结果为真,则Qt无法读取图像格式。您可能使用非标准PNG编码。这些图像都来自同一个来源吗?(例如,由同一图像编辑器编辑)


但是,如果即使上面的第一个调试输出总是打印为true,仍然会出现错误,那么错误就在其他地方。然后,它可以帮助我们提供更多关于如何使用图像的代码。

这可能是某种文件复制问题。尝试使用图像的绝对路径。你也可以使用Qt资源系统,而不是单独的图像文件。你是对的。这可能是一个文件复制问题,因为使用Qt资源是有效的。非常感谢。谢谢,这帮我弄清楚它实际上并没有加载。所有图像都使用相同的图像编辑器调整大小,然后放在相同的位置。不过,使用Qt资源还是有效的。
QString path = "player.png";
bool loadSuccess = image.load(path);
qDebug() << "Image" << path << "loaded? =>" << loadSuccess;
if(!loadSuccess)
    qDebug() << "  File exists? =>" << QFile::exists(path);