在Qt GUI中加载并显示图像

时间:2014-01-16 05:04:34

标签: c++ qt user-interface qgraphicsview qgraphicsscene

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

mainwindow.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;
}

1 个答案:

答案 0 :(得分:3)

您的QGraphicsViewQGraphicsScene实例是局部变量,它们将在MainWindow构造函数范围之外被销毁。

请这样试试。

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

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