Qt5图形视图框架之概念篇(1)

本章将主要简述Graphics View框架结构的特点、主要包含的元素及坐标系统。

1、Graphics View框架结构的特点:

(1)系统可以利用Qt绘图系统的反锯齿、OpenGL工具来改善绘图性能。

(2)其支持事件传播结构,可以使图元在场景中的交互能力提高一倍,凸缘可以处理键盘事件和鼠标事件。

(3)通过BSP提供快速的图元查找,可以实现实时显示包含数百万图元的大场景。

2、Graphics View的三元素:

(1)场景类(QGraphicsScene):本身不可见,是一个放置图元的容器必须通过与之相连的视图类来显示及与外界进行 互操作。通过QGraphicsScene::addItem()来添加图元。

QGraphicsScene::items()和一些重载函数能够返回和点、矩形、多边形或向量路径相交的所有图元。

QGraphicsScene::itemAt()返回指定点的最顶层图元。

QGraphicsScene::setSelectedAreas()函数选择图元,选择区域可以是任意的形状,使用QPainterpath表示。

QGraphicsScene::selectedItems()函数得到当前选择的图元列表。

QGraphicsScene::setFocusItem()函数或QGraphicsScene::setFocus()函数来设置图元的焦点。

QGraphicsScene::focusItem()函数获得当前具有焦点的图元。

QGraphicsScene::reader()函数在绘图设备上绘制场景。

(2)视图类(QGraphicsView):提供一个可视的窗口用于显示场景中的图元。其是可滚动的窗口部件,可以提供滚动条来浏览大的场景。

QGraphicsView::setViewport将视图设置为QGLWidget。

QGraphicsView::matrix()可以变换场景的坐标,实现场景缩放和旋转。

QGraphicsView::mapToScene()和QGraphicsView::mapFromScene()用于场景的坐标进行转换。

(3)图元类(QGraphicsItem):它是场景中各个图元的基类,在她的基础上可以继承出各种图元类,

包括直线(QGraphicsLineItem)、椭圆(QGraphicsEllipseItem)、文本图元(QGraphicsTextItem)、矩形(QGraphicsRectItem)等。

3、QGraphicsView的坐标系统:

基于笛卡尔积坐标系,一个图元的场景具有X坐标和Y坐标。

(1)场景坐标:是所有图元的基础坐标系统。

(2)视图坐标:是窗口部件的坐标。视图坐标的单位是像素。

(3)图元坐标:图元使用自己的本地坐标,这个坐标系统通常以图元中心为原点,这也是所有变换的原点。

时间: 2024-10-10 16:43:47

Qt5图形视图框架之概念篇(1)的相关文章

Qt-MVC图形视图框架分解

前面在<Qt-MVC图形视图框架出识>中我们了解了Qt图形视图框架中三个最基本的类,弄清他们的关系,本片小文,我们将对QGraphicsView,QGraphiceScene,QGraphicsItem三个类继续深入探讨.了解在开发中必须要知道的操作以及对这三个类的认识. QGraphicsView:一个用于显示的类,为了实现对图元的 类名 作用与特性   坐标系 QGraphicsView (视图类) 1)提供一个可视的窗口,用来显示图元. 2)在同一个场景中可以有多个视图,也可以为相同的数

QGraphics图形视图框架的关系

#include <QtWidgets> int main(int argc, char *argv[]) { QApplication a(argc, argv); QGraphicsScene scene(0, 0, 480, 320);//场景 所有的图形item都被必须附着在这个场景(scene)上面 QGraphicsView view(&scene);//视图 场景上的所有图形item都被必须通过这个视图(view)来让用户看得见 view.setMinimumSize(5

缓存服务器varnish概念篇

一.Varnish 简介 Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好. Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算机系统的内存除了主存外,还包括了CPU内的L1.L2,甚至有L3快取.硬盘上也有自己的快取装置,因此Squid Cac

使用GNS3和Cisco IOU搭建路由交换实验-概念篇

使用GNS3和Cisco IOU搭建路由交换实验-概念篇 说到模拟器,大家一定不会陌生,如大家所熟悉的Hyper-v.VMware和VirtualBox操作系统模拟器(虚拟机)还有常用在Unix和Linux下面的QEMU等模拟器,这些都是面向操作系统为对象的模拟器.另外还有面向街机为对象的街机游戏模拟器.面向网络设备或者网络操作系统为对象的网络模拟器就是我今天要给大家分享的主要对象! 所谓网络模拟器,就是利用计算机软件模拟网络设备实现类似于真实环境的网络设备的互联和配置的软件模拟平台!目前比较流

数据集成之主数据管理(一)基础概念篇

数据集成是当下比較热门的话题,相关的产品和平台也越来越多.非常多CIO都在各种数据集成平台和产品之间犹豫不决.因此对数据集成平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才干为数据平台选型的决策提供可靠的保证. 我有幸參与了国内一个知名企业的集成平台的设计工作,并主导了数据集成平台的需求分析和产品选型工作.这次工作中,研究了非常多新的技术方向和产品,以下我主要讲一下数据集成领域的一种新兴的产品平台主数据管理平台MDM(Master Data Management). 主数据的

高性能缓存加速器varnish(概念篇)

高性能缓存加速器varnish(概念篇) 一.varnish简介 varnish是一款高性能的开源HTTP加速器,现在很多门户网站已经部署了varnish,并且反应都很好,甚至反应比squid还稳定,且效率更高,资源暂用更少. 作者Poul-Henning Kamp是FreeBSD的内核开发者之一.Varnish采用全新的软件体系架构,和现在的硬件提交配合紧密.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算 机系统的内存除了主存外,还包括了cpu内的L1.L2,甚至有L3快取.硬盘上也

Activity中UI框架基本概念

Activity中UI框架基本概念 Activity 是应用程序的基本组成部分,提供了可视的界面,与用户进行交互: 具体Acitivity是怎么样显示这些事视图元素以及响应事件交互的. 一Activity相关概念 Activity:Activity包含一个Window,该Window在Activity的attach方法中通过调用 PolicyManager.makeNewWindo创建: View:最基本的UI组件,表示屏幕上的一个矩形区域: DecorView:是Window中View的Roo

Stripes视图框架实现ActionBean视图访问

Stripes最基本的实现是类似于Struts的请求,但没有Struts那么配置繁琐.下面就来看看怎样实现一个web应用的Action访问操作.本篇博文为设计Stripes的三种访问方式:普通Action的映射访问.类Servlet访问方式.Rest变参访问方式.前几天还没将Stripes应用示例打通,今天又本着不解决问题死不罢休的精神继续去弄,终于搞明白了. 1.编写Stripes的web.xml配置文件 该文件定义了第三方的工具包.过滤器类.以及映射关系和访问格式:在此配置文件中有两种Str

Android中自定义视图View之---进阶篇(Canvas的使用)

更多技术内容请移步:我的个人博客 一.前言 今天是周日,昨天刚刚写完了一篇关于如何搭建LNMP环境,让自己可以DIY有个性的个人主页: http://blog.csdn.net/jiangwei0910410003/article/details/50929955 那么今天,我们继续来看一篇关于Android中的UI篇,如何自定义视图View的进阶篇,关于前奏篇之前已经写过了,还没有了解的同学可以去看看:http://blog.csdn.net/jiangwei0910410003/articl