Qt图形视图框架(一) Graphics View Framework介绍

时间:2021-07-02 19:02:29

Graphics View Framework介绍

当你有大量2D图元需要展现时,可以使用图形视图框架。图形视图框架中的图元,能够处理用户交互事件(鼠标、键盘事件等),支持平移,缩放,旋转等变换。你可以为图元应用图形效果及动画。当你需要时,可以定义自己的图元。  图形视图框架有三类基本元素:QGraphicsScene,QGraphicsItem,QGraphicsView,三者关系:  假设你在用照相机拍照,你眼前的风景就是QGraphicsScene,风景中的物体(如树木,房屋)就是QGraphicsItem,眼前的风景虽然很广阔,但你只能看到相机中的区域,这块区域就是QGraphicsView。 下面举一个例子: 1 创建一个以widget作为基类的项目,为了方便删除widget头文件以及其源文件,当然可以不删除 2 因为要用到c++11特性,所以在pro文件中添加语句:
CONFIG += c++11
3 修改main:
#include <QtWidgets>
#include <QApplication>


int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//图形视图框架基本步骤:
//1 创建一个Scene
QGraphicsScene scene(0, 0, 500, 500);
//2 创建所需要的Item
auto hello = new QGraphicsSimpleTextItem("Hello Qt!");//auto用了c++11标准
hello->setPos(100, 100);//设置位置
scene.addItem(hello);//将item添加到scene
//3 创建View
QGraphicsView view(&scene);//用view来显示scene
view.setSceneRect(0, 0, 500, 500);//设置view初始大小,即窗口初始大小
view.setMinimumSize(400, 400);//设置view最大size和最小size,当达到最值后窗口将不能再扩大/缩小
view.setMaximumSize(600, 600);
view.show();//显示

return a.exec();
}