MyView::MyView() { resize(400, 400); setBackgroundBrush(QPixmap(":/20200212141848.png")); QGraphicsScene *scene = new QGraphicsScene(this); scene->setSceneRect(0, 0, 100, 100); QGraphicsRectItem *item = new QGraphicsRectItem(0, 0, 20, 20); item->setBrush(Qt::red); scene->addIt...
可视化一个场景,通过建构QGraphicsView通过对象的地址,可看QGraphicsView的构造函数,或者也可以随后调用setScene()显示。在你调用show(),视窗将默认将滚动到视图中心并显示可见的所有项目。例如: QGraphicsScene *pScene = new QGraphicsScene();pScene->addText("Hello, world!");QGraphicsView *pView = new Q...
1. 视图(view)、场景(scene)、图元(item)三者的坐标系: 1)视图坐标系与主窗体的逻辑坐标相同,以窗体左上角为原点(0,0),x 向右为正,y 向下为正。 2)场景坐标系以场景中心为原点。 setSceneRect函数设置了视图中的场景坐标系某点到视图原点的映射,及场景尺寸。 3)图元坐标系以图元中心为原点。 3.1)QGrap...
QGraphicsView *pView = new QGraphicsView(pScene, this); 可以使用滚动条或调用centerOn()显式滚动到场景中的任何位置。通过将点传递给centerOn(),QGraphicsView将滚动其视区以确保该点在视图中居中。提供了一个用于滚动到QGraphicsItem的重载,在这种情况下,QGraphicsView将看到该项的中心在视...
创建场景QGraphicsScene ,并放入视图中: QGraphicsScene* _scene = new QGraphicsScene();ui.graphicsView->setScene(_scene); 注意:如果设置scene的坐标和宽高则不能放在构造里,不然不起效果,设置图形项宽高和坐标也不能在构造设置。 scene的坐标怎么看?
GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力。图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项。 对于键盘鼠标事件,scene会传递给获得焦点的图形项。如果场景没有获得焦点,那键盘事件会丢弃;如果调用场景setFocus()或者场景中的一个图形项...
通过调用setSceneRect()来设置场景的边界矩形。item可以放置在场景上的任何位置,默认情况下,场景的大小是无限的。场景矩形仅用于内部记账,维护场景的item索引。如果未设置场景矩形,QGraphicsScene将使用所有item的边界区域(由itemsBoundingRect()返回)作为场景矩形。然而,itemsBoundingRect()是一个相对耗时的函数,因为它通过...
QGraphicsView能够用于数据可视化全部情景,或是只表明在其中的一部分。默认设置状况下,在初次表明主视图时自动识别数据可视化地区(根据启用QGraphicsScene::itemsBoundingRect())。要自身设定数据可视化地区矩形框,能够启用setScenRect()。这将适度调节下拉列表的范畴。一定要注意,虽然情景适用几乎不受到限制的尺寸,...
setScene和scene函数可用于设置和获取视图场景。 setMatrix,setTransform,transform,rotate,scale,shear和translate函数都可以用于修改或检索视图的几何特性。 与QGraphicsScene和QGraphicsItem类相同,QGraphicsView还提供了许多相同的受保护虚拟成员,可用于进一步扩展视图的功能。 现在,我们将对平时应用QGraphicsView扩展...