在 Qt GUI 中加载和显示图像
Posted
技术标签:
【中文标题】在 Qt GUI 中加载和显示图像【英文标题】:Load and display image in Qt GUI 【发布时间】:2014-01-16 05:04:33 【问题描述】:我从事 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;
【问题讨论】:
检查 (file.isNull()) 是否返回 true .. 请出示您的.qrc
文件和.pro
文件。
【参考方案1】:
您的QGraphicsView
和QGraphicsScene
实例是局部变量,当超出MainWindow
构造函数范围时它们将被销毁。
请这样尝试。
QGraphicsScene *scene = new QGraphicsScene(this);
QGraphicsView *view = new QGraphicsView(scene);
如果它仍然不起作用,请检查您的 QPixmap
文件是否为空或与 @Wagmare 所说的不同。
【讨论】:
以上是关于在 Qt GUI 中加载和显示图像的主要内容,如果未能解决你的问题,请参考以下文章