欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-26 10:10: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();
}