在Qt GUI中加载和显示图像

Load and display image in Qt GUI

本文关键字:显示 显示图 图像 加载 Qt GUI      更新时间:2023-10-16

我在Qt GUI C++项目上工作。我尝试显示资源文件中的图像,并且还有更多要求,例如播放幻灯片照片。调试时遇到困难,它只是显示白屏。我以为图像没有加载到图形视图。在main.cpp和mainwindow.ui中,我将它们保留为默认值,没有编辑。所以请帮我解决这个问题。提前致谢

主窗口.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPixmap>
#include <QGraphicsPixmapItem>
#include <QMessageBox>
#include <QGraphicsView> 
#include <QStackedWidget>
#include <QGraphicsScene>
#include <QDataStream>
#include <QFile>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap file(":/rose.jpg");
    QStackedWidget  *temp = new QStackedWidget();
    QGraphicsScene scene;
    QGraphicsView view(&scene);
        QGraphicsPixmapItem img(file);
        scene.addItem(&img);
        temp->addWidget(&view);
        setCentralWidget(view);
}
MainWindow::~MainWindow()
{
    delete ui;
}

您的QGraphicsViewQGraphicsScene实例是局部变量,当它们超出MainWindow构造函数范围时将被销毁。

请像这样尝试。

QGraphicsScene *scene = new QGraphicsScene(this);
QGraphicsView *view = new QGraphicsView(scene);

如果它仍然不起作用,请检查您的QPixmap文件是否为空,就像@Wagmare所说的那样。