我从事 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;
}
最佳答案
您的QGraphicsView
和QGraphicsScene
实例是局部变量,当它们超出MainWindow
构造函数范围时将被销毁。
请试一试。
QGraphicsScene *scene = new QGraphicsScene(this);
QGraphicsView *view = new QGraphicsView(scene);
如果还是不行,请检查你的QPixmap
文件是否为空,或者不像@Wagmare 所说的那样。
关于c++ - 在 Qt GUI 中加载和显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21153718/