c++ - QT .png 文件未显示在屏幕上

标签 c++ image qt png

当我编译和运行我的项目时,我似乎得到的只是一个白屏。该图像确实存在,并且图像文件夹在我的项目的根目录中。我要做的就是将一个简单的图像加载到屏幕上。我在这里缺少什么具体的东西吗?

代码

#include <QtGui/QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QGraphicsPixmapItem>
#include <QDir>
#include "chronos_main_window.h"

int main(int argc, char *argv[])
{
    QDir dir;
    QApplication a(argc, argv);
    QGraphicsScene scene;
    //ChronosMainWindow window;
    QGraphicsView view(&scene);
    QGraphicsPixmapItem item(QPixmap(dir.relativeFilePath("images\\ozone_sprite.png"))); //images folder is located in project root dir
    scene.addItem(&item);
    //window.show();
    view.show();

    return a.exec();
}

最佳答案

试试这个:

在您的代码中:

QGraphicsPixmapItem item(
                     QPixmap(dir.relativeFilePath(":/images/ozone_sprite.png")));

在resource.qrc中(如果没有,就右键点击你的项目,添加新的.. -> Qt -> Qt Resource file),然后用纯文本编辑器打开:

<RCC>
<qresource>
    <file>images/ozone_sprite.png</file>
</qresource>
</RCC>

希望对你有帮助

关于c++ - QT .png 文件未显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8402020/

相关文章:

c++ - 如何在 clang 中创建虚拟文件以进行代码完成

C - 解析任意图像文件

qt - Qt耦合信号/槽的无限递归

c++ - 如何在qt中使用带有两个参数的qDebug()?

c++ - 当内容不滚动时如何设置 QScrollBar 的样式?

c++ - OpenCV 中函数 "normalize"中这行代码的语法是什么?

c++ - 为什么 throw 本身会导致异常?

c++ - 如何在不逐字符遍历文件的情况下读取文件中的特定字符?

android - 如何在 Android 中为位图着色?

objective-c - 制作幻灯片