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的更多相关文章

  1. Qt4与Qt3的主要不同

    Qt4与Qt3的主要不同 1)QT4 中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的 工作是巨大的,这 ...

  2. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

  3. QT4和QT3的区别

    著名的QT库前一阵子升级到4.xx版本了,我目前在开发的一个基于QT3的软件,由于受到QThread的各种困扰,因此打算尝试将代码升级到QT4, 但是当我实际开始升级工作后,才发现QT3和QT4的变化 ...

  4. yum与rpm的区别以及详细介绍

    rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装.查询.卸载.升级等工作.但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时. Yum(全称为 ...

  5. qt configure参数配置介绍

    ======================================全文是按照./configure -help来翻译的==================================== ...

  6. QT4与QT3的不同

    1)QT4中提供了大量新控件,虽然它也保持了旧的控件,并命名为Qt3XXX,但是这样的控件没准在今后的哪个QT版本中就不被支持了,所以还是换吧,控件替换的工作是巨大的,这些新的控件使用了新的方法.属性 ...

  7. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  8. Linux基础教程 linux awk内置变量使用介绍

    awk是个优秀文本处理工具,可以说是一门程序设计语言.下面是兄弟连Linux培训 给大家介绍的awk内置变量. 一.内置变量表 属性 说明 $0 当前记录(作为单个变量) $1~$n 当前记录的第n个 ...

  9. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

随机推荐

  1. Java开发小技巧(三):Maven多工程依赖项目

    前言 本篇文章基于Java开发小技巧(二):自定义Maven依赖中创建的父工程project-monitor实现,运用我们自定义的依赖包进行多工程依赖项目的开发. 下面以多可执行Jar包项目的开发为例 ...

  2. Git 二分调试法,火速定位疑难Bug!

    你一定遇到过,一个很久没修改过的功能,莫名其妙的出现了问题?肉眼查代码.屡逻辑完全找不到问题点?前两天还好好的功能,怎么这个今天就不行了?这两天改动了这么多代码,到底是那一次改动引发的 Bug? 这样 ...

  3. Ant 给project打包

    写了一段主要的war打包.编译文件复制的 ant 配置文件 xml <?xml version="1.0" encoding="utf-8"? > ...

  4. PAT 1004 To Fill or Not to Fill (25)

    题目描写叙述 With highways available, driving a car from Hangzhou to any other city is easy. But since the ...

  5. Flex/AS3 base64指定字符编码

    public static function base64Encode(str:String, charset:String = "GBK"):String{ if(StringU ...

  6. 在Docker中运行asp.net core 跨平台应用程序

    概述 Docker已经热了有一两年了,而且我相信这不是一个昙花一现的技术,而是一个将深远影响我们日后开发和部署.运营应用系统的一种创新(很多人将其作为devops的一种非常重要的基石).学习docke ...

  7. Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分

    问题引入:   有一个下载功能,在Android 5.x设备上运行正常,Android 6.x上运行异常,现象是下载进度卡在0%.   问题排查发现,是sdk的target设置为23导致,修改为21则 ...

  8. Mac OS 终端利器 iTerm2

    之前一直使用 Mac OS 自带的终端,用起来虽然有些不太方便,但总体来说还是可以接受的,是有想换个终端的想法,然后今天偶然看到一个终端利器 iTerm2,发现真的很强大,也非常的好用,按照网上配置了 ...

  9. IOS学习5——属性与成员变量

    [转]iOS中属性与成员变量的区别 ios中属性修饰符的作用 1. 属性用property声明 2. 简而言之,对于目前的ios开发,属性和成员变量的区别,完全可以不管. 3. 这个是历史原因造成的. ...

  10. PHP (超文本预处理器)

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超为本预处理器")是一种通用开源脚本语言.语法吸收了C语言.java和Rerl的特点,利于学习,使 ...