QGraphicsView
提供一个窗口来展示QGraphicsScene的内容,它将QGraphicsScene的内容在一个可滚动的视口中。
可视化一个scene,首先要构建一个QGraphicsView的对象view,再将需要可视化的scene地址传入其构造函数中,此外也可以使用setScene(),将scene指针做为参数。随后调用show()函数,view就会默认滚动到场景中央,并展示其周围的item。
QGraphicsScene scene;
scene.addText("Hello,world!");
QGraphicsView view(&scene);
view.show();
可以使用滚动条至scene的任意位置,也可以传一个点至centerOn中,QGraphicsView会滚动视口,确保这个点在视图的中央。
该函数的一个重载函数是将一个QGraphicsItem作为参数,view会以这个item为中心展示。如果要确定某一区域是否可视,调用ensureVisible()。
QGraphicsView可以可视化一整个scene,也可以可视化部分。默认情况下,当视图第一次显示时(通过调用QGraphicsScene: : itemsBoundingRect())自动检测到可视化区域,自行设置可视化区域,可以调用setSceneRect()。这个函数将调整滚动条的范围。
虽然场景可视化没有尺寸限制,但是滚动条的范围不能超过整数范围(INT_MIN,INT_MAX)
QGraphicsView通过调用render()可视化scene。在默认情况下,item是使用QPainter绘制在视口上的,并且使用默认的render hints(设置渲染时的一些属性,如是否使用反抗锯齿,缩放时是否使用平滑变换等),更改传递给QPainter的render hits,使用函数setRenderHints()。
默认情况下,QGraphicsView提供一个QWidget给视口部件。我们可以通过调用viewport()获取这