在QT编程中,QGraphicsView是怎么显示出图片的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在QT编程中,QGraphicsView是怎么显示出图片的相关的知识,希望对你有一定的参考价值。

最好给出一个简单的例子就好了,谢谢各路高手!
我用的是QT4,它提示这样的错:
对 ‘QGraphicsScene::addPixmap(QPixmap*&)’ 的调用没有匹配的函数

1、在窗体中添加一个label和三个按钮,label用来显示图片,存储base64按钮:将图片编码为base64字符串。

2、在构造函数中读取图片,然后显示在label上,显示效果如下图。

3、将图片保存为base64,主要用到了QPixmap的save函数。

4、base64的图片数据如下。字符串较长,这里只显示前面的一部分。可以将该字符串保存到文件中,这里只做演示,没有保存到文件

5、清空图片按钮及运行后的界面。

参考技术A 大概是这样子的

其实就是直接调用addPixmap

QGraphicsScene *scene;
QGraphicsView *view = new QGraphicsView( scene,this );
QPixmap *pixmap = new QPixmap("xxx.png");
scene->addPixmap(pixmap );
view->show();

==================================

试下这样

scene->addPixmap( QPixmap("xxx.png") );本回答被提问者和网友采纳

Qt QGraphicsView不显示场景

【中文标题】Qt QGraphicsView不显示场景【英文标题】:Qt QGraphicsView not showing the scene 【发布时间】:2013-09-25 07:42:45 【问题描述】:

我是 Qt 的新手。我有问题。我不想使用 Qt 表单来创建 QGprahics 视图我只想对其进行编码,但我无法让它工作。

这是我的代码:

main.cpp:

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])

    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();

主窗口.cpp

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)

    scene = new QGraphicsScene(this);
    scene->setSceneRect(600,480,600,480);

    QGraphicsEllipseItem * ellipse;
    QPen pen(Qt::red);
    QBrush brush(Qt::blue);

    ellipse = scene->addEllipse(150,150,100,100,pen, brush);

    view = new QGraphicsView(scene,this);

    setCentralWidget(view);



MainWindow::~MainWindow()

    delete view;
    delete scene;

视图和场景是 MainWindow 类的私有成员。

程序只显示白屏,但那里没有椭圆。

任何建议我做错了什么?提前致谢!

【问题讨论】:

【参考方案1】:

我认为你的问题是scene-&gt;setSceneRect(600,480,600,480);

您的椭圆是在视图之外创建的。

【讨论】:

以上是关于在QT编程中,QGraphicsView是怎么显示出图片的的主要内容,如果未能解决你的问题,请参考以下文章

Qt 部署 - QGraphicsView 不显示在其他机器上

Qt QGraphicsView 和 QGraphicScene 鼠标位置

QGraphicsView 啥都不显示

Qt QGraphicsView不显示场景

求qt在QGraphicsView中主动捕获鼠标位置的实现方法?

Qt5中show()后QGraphicsView/QGraphicsScene初始定位的基本问题