我已经阅读了多篇文章,它仍然无法正常工作!!
我知道我做得对,但由于某种原因它无法正常工作。
这是我的代码:
myIcon = new QLabel();
QPixmap myPixmapForNow;
if(!myPixmapForNow.load(":/img/Interrogation.png")){
qWarning("Failed to load");
}
myIcon->setPixmap(myPixmapForNow);
它告诉我每次都无法加载文件。
我想要做的是显示一个具有工具提示的图像,并解释它旁边的按钮的作用。基本上,我正在寻找一种方法来显示一个带有工具提示的图像。
我是初学者,老实说,查看文件夹的概念对我来说有点抽象。如果您有博客或建议的东西,我会愿意阅读它。我一直在寻找一个,我找不到任何一个解释这个概念以及如何去做的好事。
如果您有解决方案,请解释一下。没有比解释更好的了:))
由于
答案 0 :(得分:1)
要做的两件事:
检查QFile
是否可以打开该资源并阅读它。将其转储到磁盘上的文件中。
QFile fi(":/img/Interrogation.png");
QFile fo(QDir::homePath() + QDir::separator() + "Interrogation.png");
if (!fi.open(QIODevice::ReadOnly)) {
qWarning() << "Can't open the resource" << fi.fileName();
return;
}
if (!fo.open(QIODevice::WriteOnly)) {
qWarning() << "Can't open the output" << fo.fileName();
return;
}
fo.write(fi.readAll());
检查转储到磁盘的格式,确保它是一个有效的png文件。例如,您可以在图像编辑器中打开它 - 只需确保扩展程序与内容一致即可。扩展名为.png
的有效JPEG文件无法加载。
答案 1 :(得分:0)
似乎,我已经复制了你的错误。可能您错过了QtCreator通常设置为"/new/prefix1/"
的默认资源前缀。由于访问资源,此字符串前缀必须存在。尝试按以下方式修改代码:
if(!myPixmapForNow.load(":/new/prefix1/img/Interrogation.png")){
或者,您需要发现您的资源文件以找出正确的前缀字符串。如果您已经修改了前缀字符串,则相应地修改您的代码。