QGraphicsScene scene; scene.addText("Hello, world!"); scene.setForegroundBrush(QColor(255, 255, 255, 100)); scene.setBackgroundBrush(Qt::green); QGraphicsView view(&scene); view.show(); return app.exec(); } 运行结果如下: 对于前景层,我们一般不进行设置,或者像上面这样设置为半透明的白色。
对于QGraphicsView/QGraphicsScene的初始定位问题,可以使用QGraphicsView的setSceneRect()方法和fitInView()方法来实现。这样可以确保图形项在初始显示时位于指定的位置和大小。 关于Qt5中QGraphicsView/QGraphicsScene的更多详细信息和用法,你可以参考腾讯云的相关文档和示例代码: ...
该属性保存 QGraphicsScene 的BSP索引树的深度。 当使用 NoIndex 时,该属性无效。 该值决定了 QGraphicsScene 的BSP树的深度。深度直接影响 QGraphicsScene 的性能和内存使用情况;后者随着树的深度呈指数增长。通过一个合理的树深度,QGraphicsScene 可以立即确定item的位置,即使对于包含数千个或数百万个item的场景。...
要将项目添加到场景中,首先要构造一个QGraphicsScene对象。然后,有两个选项:要么通过调用addIitem()添加现有的QGraphicsItem对象(主要是自定义继承的QGraphicsItem),要么调用便利函数addEllipse()、addLine()、addPath()、addPixmap()、addPolygon()、addRect()或addText(),这些函数都返回指向新添加项的指针。
2。QGraphicsScene类,即scene(场景)类 scene(场景)坐标,属于逻辑坐标 logical coordinates(与QPainter相同),以场景中心为原点,正方向x朝右,y朝下。图元嵌入场景中,默认场景原点与图元原点对齐。场景默认的对其方式为居中对其,这个中指的不是原点,而是所有item的Rect的中心点,是计算出来的。如果scene的大小超过view的...
可以使用setSceneRect()设置QGraphicsScene的大小。如果不设置,则默认为scene中包含所有子元素的边界区域( itemsBoundingRect()函数的返回值)。更详细的说明参看QGraphicsScene的文档,讲解很详细,看下面这段:The scene's bounding rect is set by calling setSceneRect(). Items can be placed at ...
QGraphicsView可以用来可视化整个场景,或者只显示其中的一部分。默认情况下,在首次显示视图时自动检测可视化区域(通过调用QGraphicsScene::itemsBoundingRect())。要自己设置可视化区域矩形,可以调用setScenRect()。这将适当调整滚动条的范围。请注意,尽管场景支持几乎不受限制的大小,但滚动条的范围永远不会超过整数...
sceneRect和setSceneRect函数可用于获取和设置视图中场景的可视化区域。 显然,该值不必与QGraphicsScene类的sceneRect相同。 centerOn函数可用于确保特定点或项目位于视图中心。 ensureVisible函数可用于将视图滚动到特定区域(具有给定的边距)以确保它在视图中。 此函数适用于点,矩形和图形项目。
分辨创建它们的实例:view,scene,item,然后通过各自的方法scene->addItem(item);view->setScene(scene);就能够达到类似下图的效果,想要进一步定制,则要继承QGraphicsItem或QGraphicsPixmapItem,然后重写paint()、boundingRect()等方法,此外假设还想要获取鼠标事件,重写mousePressEvent等事件就好了,注意,一旦重写了mousePressEve...