900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Qt 图形视图框架(Qt MVC)

Qt 图形视图框架(Qt MVC)

时间:2024-06-16 04:21:33

相关推荐

Qt 图形视图框架(Qt MVC)

什么是MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。------摘自百度百科

楼主简单的理解就是M是数据模型,V是用户可见的视图,C是响应用户操作的控制器。

Qt图形视图框架与MVC

Qt图形视图框架就是采用MVC的设计思想:

QGraphicsView负责显示,属于V; QGraphicsScene以及QGraphicsItem存储场景以及图形项的数据,属于M;由于QGraphicsView的祖先是QWidget,QWidget自身可以响应鼠标、键盘等用户操作,所以在Qt中QGraphicsView同时负责响应用户操作,属于C。 打个比喻:QGraphicsViews是电影院中的幕布,QGraphicsScene是胶卷,QGraphicsItem是胶卷中的一个个人物(或者动物等等)。

代码示例

#include <QApplication>#include <QGraphicsView>#include <QGraphicsScene>#include <QGraphicsSimpleTextItem>int main(int argc, char** argv){QApplication app(argc, argv);//QGraphicsView用于显示用户界面QGraphicsView view; //--->V && C//QGraphicsScene 提供场景数据QGraphicsScene scene; //--->M//给视图添加场景view.setScene(&scene);//QGraphicsSimpleTextItem(继承自QGraphicsSimpleItem) 提供图元数据QGraphicsSimpleTextItem simpleTextItem("Hello Qt MVC!"); //--->MsimpleTextItem.setPen(QPen(Qt::red));//给场景添加图元scene.addItem(&simpleTextItem);simpleTextItem.setPos(100,100);view.show();return app.exec();}

运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。