QGraphicsView显示QRC中的图片
时间: 2024-09-03 12:01:43 浏览: 78
MyDropDemo:QGraphicsView Drop演示
要在`QGraphicsView`中显示QRC(Qt Resource Compiler编译的资源)中的图片,你可以按照以下步骤操作:
1. 首先,确保你的资源文件(通常以`.qrc`结尾)已经包含了你要显示的图片。例如,在`my_resources.qrc`中添加图片:
```xml
<RCC>
<qresource prefix="/">
<file>image.png</file>
</qresource>
</RCC>
```
2. 在`.h`文件中声明一个QPixmap变量来存储图片:
```cpp
#ifndef QMYGRAPHICSVIEW_H
#define QMYGRAPHICSVIEW_H
#include <QGraphicsView>
#include <QPixmap>
class QMyGraphicsView : public QGraphicsView {
Q_OBJECT
public:
QMyGraphicsView(QWidget *parent = nullptr);
void displayImage();
private:
QPixmap pixmap;
};
#endif // QMYGRAPHICSVIEW_H
```
3. 实现`displayImage()`函数来加载并显示图片:
```cpp
#include "qmygraphicsview.h"
QMyGraphicsView::QMyGraphicsView(QWidget *parent)
: QGraphicsView(parent)
{
}
void QMyGraphicsView::displayImage()
{
// 使用QResource查找图片
QResource resource(QStringLiteral(":/image.png"));
if (resource.isLocal()) {
// 图片存在本地,加载图片
pixmap.loadFromData(resource.data());
} else {
qWarning() << "Failed to load image from QRC";
return;
}
// 设置视图背景为图片
setScene(new QGraphicsScene(this));
scene()->addPixmap(pixmap);
}
```
4. 在你的应用程序生命周期中调用`displayImage()`方法来显示图片:
```cpp
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QMyGraphicsView graphicsView(&window);
graphicsView.displayImage();
graphicsView.show();
return app.exec();
}
```
这样,当窗口加载时,`QGraphicsView`就会显示从QRC中加载的图片。
阅读全文