QCanvasItem介绍-QT3
QCanvasItem类提供一个在QCanvas上的抽象图形对象。
各种QCanvasItem子类提供立即可用的行为。这个类是一个纯粹的抽象超类,它提供了在所有具体的canvas项目类中共享的行为。QCanvasItem不打算直接子类化。子类话一个他的子类更容易,QCanvasPolygonalItem (最常见的基类), QCanvasRectangle, QCanvasSprite, QCanvasEllipse or QCanvasText.
画布项通过构造函数添加到画布上。可以使用setCanvas()将项目移动到不同的画布上。
在show()函数被调用(或setVisible(TRUE))之后,以及在update()被调用之后,画布项就可以显示在画布上。画布只显示可见的项,并且只有在调用update()时才会显示。如果您创建画布时没有给构造函数传递宽度和高度参数,那么您还需要调用resize()函数。因为画布背景默认为白色,画布项也默认为白色,所以您需要改变颜色才能在画布上看到画布项。
一个QCanvasItem对象可以使用move(), moveBy(), setX(), setY() and setZ()函数在x,y,z方向上移动。一个画布项可以通过函数setAnimated()设置为运动状态, 并用函数setXVelocity() 和 setYVelocity()来设置x和y方向上的速度——调用setVelocity()可以实现同样的效果。使用collidesWith()函数来查看画布项是否会在下一次advance(1)上发生冲突,并使用collisions()来查看发生了什么冲突。
使用QCanvasSprite或您自己的QCanvasSprite子类来创建动画的画布,即随时间变化的画布。
画布项的大小可以使用函数boundingRect()得到。使用boundingRectAdvanced()查看下一个advance(1)调用后画布项的大小。
使用rtti()函数用来获得QCanvasItem子类的标识。函数canvas() 的作用是返回一个指向包含画布项的画布指针。
QCanvasItem提供了类似于QWidget中一个的函数:show()和isVisible()函数。
QCanvasItem还提供setEnabled()、setActive()和setSelected()函数;这些函数设置了相关的布尔值并导致重新绘制,但是它们所设置的布尔值并不在QCanvasItem中使用。您可以在子类中使用这些布尔值。
默认情况下,canvas项目没有速度,没有大小,也没有运动。Qt中提供的子类不会更改这些默认值,除非指定了它。
QCanvasItem介绍-QT3的更多相关文章
- Qt4与Qt3的主要不同
Qt4与Qt3的主要不同 1)QT4 中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的 工作是巨大的,这 ...
- 第二章 Qt常用工具的介绍
第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...
- QT4和QT3的区别
著名的QT库前一阵子升级到4.xx版本了,我目前在开发的一个基于QT3的软件,由于受到QThread的各种困扰,因此打算尝试将代码升级到QT4, 但是当我实际开始升级工作后,才发现QT3和QT4的变化 ...
- yum与rpm的区别以及详细介绍
rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时. Yum(全称为 ...
- qt configure参数配置介绍
======================================全文是按照./configure -help来翻译的==================================== ...
- QT4与QT3的不同
1)QT4中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的工作是巨大的,这些新的控件使用了新的方法.属性 ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
- Linux基础教程 linux awk内置变量使用介绍
awk是个优秀文本处理工具,可以说是一门程序设计语言.下面是兄弟连Linux培训 给大家介绍的awk内置变量. 一.内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录的第n个 ...
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
随机推荐
- 在Ubuntu14.04下安装Docker CE(1) - repository篇
从2017年3月开始,Docker开始分为社区版本和企业版,也就是Docker CE和Docker EE, 原来Ubuntu14.04下,通过sudo apt-get install docker.i ...
- 【Hdu3555】 Bomb(数位DP)
Description 题意就是找0到N有多少个数中含有49. \(1\leq N \leq2^{63}-1\) Solution 数位DP,与hdu3652类似 \(F[i][state]\)表示位 ...
- android apk 的root 权限和USB adb 权限的差别
USB adb 权限是指,当adb 连接手机时,手机中的守护进程adbd 的权限为root 权限,从而它的子进程也具有root 权限.通常假设adb shell 看到是: Android 4.0 以后 ...
- java注解(转并做修改)
本文由 ImportNew - 人晓 翻译自 idlebrains.欢迎加入翻译小组.转载请见文末要求. 自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也 ...
- 深入理解计算机系统_3e 第八章家庭作业 CS:APP3e chapter 8 homework
8.9 关于并行的定义我之前写过一篇文章,参考: 并发与并行的区别 The differences between Concurrency and Parallel +---------------- ...
- 让你成功安装vscode中go的相关插件
注意:该演示环境是windows环境,linux和mac环境操作思路一样 vscode中有很多go的相关插件,非常好用如下:gocodegopkgsgo-outlinego-symbolsgurugo ...
- JMeter循环控制器循环次数使用变量控制注意事项
1.进入循环控制器之前变量要有值: 2.BeanShell处理文件,读取行数,赋值给变量,要有相应的Sampler,不然脚本不会运行. 对于单个线程来说,假如设置了循环2次,线程启动后,运行结束,此时 ...
- JDBC开源框架:DBUtils使用入门
在单元测试过程中,只涉及到数据库的直接操作来验证业务逻辑是否正确的情况,DBUtils非常适合使用.它结构简单,包小,友好处理掉那些jdbc异常,让你更专注于业务代码,而非底层的操作.官网对它的定义: ...
- C#Linq技术中SelectMany(...)函数的内部实现的伪代码
我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...
- [数据结构]C语言队列的实现
我个人把链表.队列.栈分为一类,然后图.树分为一类.(串不考虑),分类的理由就是每一类有规律可循,即你能通过修改极少数的代码把链表变成队列.栈.(这里我们不考虑其他诸如设计模式等因素),因此本贴在讲完 ...