Qt 自学QGraphicsItem要点 积累
1.在创建QGraphicsItem子类的时候,想要实现自己绘图,一般是重新实现boundingRect()和paint()函数,如果不重新实现shape(),基类的实现将会退而使用 boundingRect()。
2.boundingRect()这个函数的返回值是一个QRectF(一个正方形的区域),当我们需要处理我们所写的MyItem接受到的某些事件(比如鼠标按下、拖动等)时,这些事件就被规定只能发生在这个返回的矩形区域 当中时才会起被接收到。
3.函数paint(QPainter*painter,constQStyleOptionGraphicsItem*option,QWidget*/*widget*/)所绘制的内容也只能在这个区域里面画,画我们某一个具体的Item的全部内容。
4.shape()所返回的就是我们所绘制的Item的大概形状。
5.在可能改变QGraphicsItem大小或者形状的时候,QGraphicsItem子类函数中先调用prepareGeometryChange();
Qt 自学QGraphicsItem要点 积累的更多相关文章
- Qt QGraphicsItem要点 积累
1.在创建QGraphicsItem子类的时候,想要实现自己绘图,一般是重新实现boundingRect()和paint()函数,如果不重新实现shape(),基类的实现将会退而使用 bounding ...
- Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解
前话 Qt的图形视图框架,最核心的三个类为:QGraphicsScene.QGraphicsItem与QGraphicsView. 基于图形框架的高级白板软件Demo QGraphicsSce ...
- Java自学路线图之Java基础自学
自学Java要从Java基础语法开始自学,自学Java的过程中打好基础是很重要的!首先自学:面向对象基础,API基础,集合基础.这些对Java小白的数学和英语能力的要求门槛不高,在学习的过程中积累相应 ...
- C++ Qt 框架静态编译 操作记录
谁愿意写个程式出来之后还附带一堆DLL,尤其是名字如此明显的名字. 于是在网上看了看,是需要下载源代码然后进行编译的,但是看了看别人说的编译时间,长达几个小时,瞬间就感觉不想做了.因为我还需要抓紧时间 ...
- QGraphicsItem鼠标旋转控制研究
在QT场景视图中2D图形项Item的基类为QGraphicsItem,如果我们需要自定义Item则可以从其派生,然后重写boundingRect以及paint虚函数实现图形项的外边界定义以及内容绘制工 ...
- Java如何打好牢固的基础?
如果纯粹是为了学Java,那么不建议阅读本文,因为本文不是从理论和教科书的角度讲述如何打好java基础,而是会从"快速用java挣钱"这个角度,讲边学.边做项目和边提升的方法. 在 ...
- Python3学习策略
自学Python要点 [来自:http://www.cnblogs.com/shsxt/p/9138950.html] 1.找一本浅显易懂,例程比较好的教程,从头到尾看下去. 不要看很多本,专注于一本 ...
- QGrapicsItem类
这个类翻译了好久,实在是成员函数太多了,分享出来,希望对大家有用,多多支持哦~~ 详细介绍 QGraphicsItem类是视图框架的一部分,是在一个QGraphicsScene中最基本的图形类,它为绘 ...
- Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放.这个柜架也包 ...
随机推荐
- Tkinter教程之Text篇(1)
from Tkinter import *root = Tk()t = Text() for i in range(1,10): t.insert(1.0,'0123456789\n')a = 'te ...
- Android——SD卡工具类——SDCardUtils.java
package com.xdsjs.save.utils; /** * SD卡相关的辅助类 * Created by xdsjs on 2015/10/13. */ import java.io.Fi ...
- GNU与Linux
GNU是自由软件之父 Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证(General Public License,简称GPL). ...
- spring task:annotation-driven 定时任务
1.配置文件加上<task:annotation-driven/> 2.要运行的方法前加上 @Scheduled(cron="0 00 12 1 * ?") //每月 ...
- JS禁止后退键(backspace)使浏览器后退
背景说明: 今天项目测试中,同事发现一个Bug,当键盘敲下后退键(Backspace)后,浏览器自动后退,不符合需求,故建议禁止浏览器后退键. 提出需求: 当键盘敲下后退键(Backspace)后 1 ...
- 整理两个JVM博客集合,空闲时候可以看
纯洁的微笑写的:https://www.cnblogs.com/ityouknow/p/5614961.html 集合:http://www.cnblogs.com/ityouknow/categor ...
- c语言入门经典(第5版)
文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF [点击下载] C ...
- 利用 AFN 上传相册或拍照图片
概述 自定义上传图片请求,自定义调取相册及拍照,方便多处使用时调用. 详细 代码下载:http://www.demodashi.com/demo/10718.html 由于项目中多处需要上传图片,我们 ...
- 【laravel5.4】{{$name}}、{{name}}、@{{$name}} 和 @{{name}} 的区别
1.前面带@符号的,表示不需要laravel的blade引擎进行解析:有@的,则需要blade解析 2.{{$name}} 表示:blade解析 后台php的 name变量 {{name}} 表示:b ...
- setting.xml配置详解
http://blog.csdn.net/uohzoaix/article/details/7035302 http://www.micmiu.com/software/build/maven-set ...