当前位置:网站首页 > R语言数据分析 > 正文

qpainterpath moveto(qpainterpath moveto效率)



qt的Graphics View 框架主要用于大量2d绘制的场合。qt graphics view 框架主要由三部分组成:View(QGraphicsView),Scene(QGraphicsScene)、Item(QGraphicsItem)。这也是一个典型的Model/View模式应用。

sceneRect和显示密切相关,QGraphicsView使用sceneRect来决定如何显示QGraphicsScene。

1、如果sceneRect的宽度(width)大于等于QGraphicsView视口宽度:

QGraphicsView调整View的宽度为sceneRect的宽度大小。(大于的情况会自动添加滚动条);

此时View的左上角对应sceneRect的左上角,View的右下角对应sceneRect右下角。该情况下QGraphicsView的alignment不起作用。

高度判断同理!

如:View窗口:左上角(0,0) 宽=1800,高=1000 ;

sceneRect: 左上角(-200, -100),宽=2000,高=1100;

View的窗口会通过滑动条扩展为 宽=2000,高=1100;(阴影部分)

QGraphicsLineItem 画线_QGraphicsView

2、如果sceneRect的宽度(width)小于QGraphicsView视口宽度:

QGraphicsView根据 alignment/setAlignment设定来显示,默认让sceneRect居中(Qt::AlignCenter),这对于显示单张图片很好用。 也可以使用QGraphicsView::setAlignment(Qt::AlignLeft | Qt::AlignTop)设置为左上角对齐,画图比较好用。

高度判断同理!

QGraphicsView有sceneRect/setSceneRect函数,Scene也有sceneRect/setSceneRect函数,如何确定View的sceneRect呢?

1)默认情况下,QGraphicsView使用Scene外包,QGraphicsView居中对齐(Qt::AlignCenter), 所以 添加到Scene的Item会自动居中。如果Scene只有一个Item,居中这样很不错。

2)如果scene添加多个Item,默认行为居中行为就比较怪异了,最好让scene和view的原点对齐。使用QGraphicsView::setAlignment(Qt::AlignLeft | Qt::AlignTop)设置为左上角对齐。如果添加的item使得包围盒大于View的宽高,滚动条自动出现。如果永远都不希望出现滚动条需要将sceneRect设置为比View的宽高小的值。

如:QGraphicsView::setSceneRect(0, 0, 10, 10); // 后面是10, 100都无所谓,设置了就行,只要不大于view的宽高就不会出现滚动条。当然超出View宽高(注意不是sceneRect)的Item是看不见的。

到此这篇qpainterpath moveto(qpainterpath moveto效率)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • prblms怎么读(prblms英文怎么读)2025-10-05 00:00:34
  • jgcontrol已停止工作(已停止工作clr20r3)2025-10-05 00:00:34
  • rabc权限设计(rbac权限模型图)2025-10-05 00:00:34
  • uchar i什么意思(uchari什么意思)2025-10-05 00:00:34
  • 连接redis集群命令(redisson连接集群错误)2025-10-05 00:00:34
  • m哈是什么意思(么哈mojar什么意思)2025-10-05 00:00:34
  • resnet模型的优缺点(resnet模块)2025-10-05 00:00:34
  • swagger地址配置(swagger的配置)2025-10-05 00:00:34
  • nsenter命令(newterm命令)2025-10-05 00:00:34
  • store怎么读(story怎么读)2025-10-05 00:00:34
  • 全屏图片