可以通过以下步骤实现:
设置QGraphicsView的背景为透明:
view->setBackgroundBrush(Qt::NoBrush);
创建一个QPixmap对象来显示背景图片:
QPixmap pixmap(":/images/background.png");
将QPixmap对象作为场景(QGraphicsScene)的背景:
scene->setBackgroundBrush(pixmap);
将场景设置为视图的场景:
view->setScene(scene);
调整视图大小以适应场景尺寸:
view->fitInView(view->sceneRect(), Qt::KeepAspectRatio);
将视图的左上角定位到屏幕的左上角:
view->move(0, 0);
完整代码示例:
#include <QApplication>
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QPixmap>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建场景和视图
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsView *view = new QGraphicsView(scene);
// 设置视图背景透明
view->setBackgroundBrush(Qt::NoBrush);
// 加载背景图片
QPixmap pixmap(":/images/background.png");
// 将背景图片作为场景的背景
scene->setBackgroundBrush(pixmap);
// 设置场景大小和视图大小一致
scene->setSceneRect(QRectF(QPointF(0, 0), pixmap.size()));
// 将场景设置为视图的场景
view->setScene(scene);
// 调整视图大小以适应场景尺寸
view->fitInView(view->sceneRect(), Qt::KeepAspectRatio);
// 将视图的左上角定位到屏幕的左上角
view->move(0, 0);
// 显示视图
view->show();
return a.exec();
}