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

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

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

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

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

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

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

没太看懂题主的意思,按我的理解是将图片完全显示在QGraphicsView可视范围内。可以通过在QGraphicsScene中缩放图片实现。

具体代码我没有整理,比较多,这里就给个简单说明:

首先要获取View的可视范围:

QSize size=ui->view->maximumViewportSize()

再获取图片的大小

QGraphicsPixmapItem *a_pixmap_item = new QGraphicsPixmapItem(

                QPixmap::fromImage(an_image))

a_pixmap_item->sceneBoundingRect()

QRectF origin_rect= a_pixmap_item->boundingRect()

为了让图片完全显示在屏幕区域内,选择合适的比例

float wRatio=size.width()/origin_rect.width()

float hRatio=size.height()/origin_rect.height()

float scaling=(wRatio < hRatio)?wRatio:hRatio

再缩放图片和场景

a_pixmap_item->setScale(scaling)

scene->setSceneRect(r)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11628091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存