在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->setSceneRect(600,480,600,480);
。
您的椭圆是在视图之外创建的。
【讨论】:
以上是关于在QT编程中,QGraphicsView是怎么显示出图片的的主要内容,如果未能解决你的问题,请参考以下文章
Qt 部署 - QGraphicsView 不显示在其他机器上
Qt QGraphicsView 和 QGraphicScene 鼠标位置