c++ - 在 Qt GUI 中加载和显示图像

标签 c++ qt user-interface qgraphicsview qgraphicsscene

我从事 Qt GUI C++ 项目。我尝试显示资源文件中的图像,并且有更多要求,例如播放幻灯片照片。 调试的时候遇到困难,就是白屏。我以为图像没有加载到 GraphicsView。在 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 所说的那样。

关于c++ - 在 Qt GUI 中加载和显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153718/

相关文章:

c++ - 无法启动 pty 进程 :

C++ 对象创建和构造函数

c++ - 在 C/C++ 中进行不区分大小写的子字符串搜索的最快方法?

Java JFileChooser 后退按钮

c++ - 如何从 QTreeview 中删除所有行和子行

c++ - 如何为 QWidget 设置用户数据?

c++ - Qt QNetworkAccessManager总是返回空数据,状态码为0

python - QTableView 中的虚拟列?

java - 如果java中的MIDI不是用来播放歌曲的话,它的用途是什么

user-interface - Smalltalk 中的 GUI 基础