画布
QCanvas 类提供了一个高级的平面图形编程接口,它可以处理大量的像线条、矩形、椭圆、文本、位图、动画等这些画布项,画布项可以较容易的做成交互式的(例如做成支持用户移动的)。
画布项是QcanvasItem子类的实例,它们比窗体类Qwidget更显得轻量级,它们能够被快速的移动,隐藏和显示。Qcanvas可以更有效的支持冲突检测,它能够列出一个指定区域里面的所有的画布项。QcanvasItem可以被子类化,从而可以提供更多的客户画布项类型,或者扩展已有的画布项的功能。
Qcanvas对象是由QcanvasView进行绘制的,QcanvasView对象可以以不同的译文、比例、旋转角度,剪切方式去显示同一个画布。
Qcanvas 对象是理想的数据表现方式,它已经被消费者用于绘制地图和显示网络拓扑结 构。它也可用于制作快节奏的且有大量角的平面游戏。
图九 在Qtopia 中用QCanvas 实现的小行星游戏
QCanvas 类提供了一个高级的平面图形编程接口,它可以处理大量的像线条、矩形、椭圆、文本、位图、动画等这些画布项,画布项可以较容易的做成交互式的(例如做成支持用户移动的)。
画布项是QcanvasItem子类的实例,它们比窗体类Qwidget更显得轻量级,它们能够被快速的移动,隐藏和显示。Qcanvas可以更有效的支持冲突检测,它能够列出一个指定区域里面的所有的画布项。QcanvasItem可以被子类化,从而可以提供更多的客户画布项类型,或者扩展已有的画布项的功能。
Qcanvas对象是由QcanvasView进行绘制的,QcanvasView对象可以以不同的译文、比例、旋转角度,剪切方式去显示同一个画布。
Qcanvas 对象是理想的数据表现方式,它已经被消费者用于绘制地图和显示网络拓扑结 构。它也可用于制作快节奏的且有大量角的平面游戏。
图九 在Qtopia 中用QCanvas 实现的小行星游戏
画布模块
画布模块提供了一个名为QCanvas的高度优化的二维绘图区。 画布可以有任意数量的QCanvasItems。画布项则可以有任意的形状、尺寸和内容,在画布中能自由的移动,并且能被检查出是否有冲突。画布项能被设置成在画布中自动地移动以及使画布项支持QCanvasSprite。(如果你需要三维绘图请看Qt的OpenGL模块。)
画布模块使用文档/视图模型。QCanvasView 类是被用来显示画布的特定视图。多视图能同时在同一画布中显示。每一个视图在画布中使用一个任意的变换矩阵,以便能使其容易的实现诸如缩放的特性。
Qt提供了一系列预定义的QCanvas项,如下所示:
∙ QCanvasItem--一个所有画布项的抽象基类。
∙ QCanvasEllipse--椭圆或者“饼的部分”。
∙ QCanvasLine--线条部分。
∙ QCanvasPolygon--多边形。
∙ QCanvasPolygonalItem--一个含有非矩形形状的基类。大多数画布项都派生于此类。
∙ QCanvasRectangle--矩形。此类矩形不能被倾斜或旋转。绘制可旋转的矩形使用QCanvasPolygon。
∙ QCanvasSpline--多重贝塞尔曲线。
∙ QCanvasSprite--活动的图片。
∙ QCanvasText--文本字符串。
QCanvasPixmap和QCanvasPixmapArray这两个类是由QCanvasSprite类来显示在画布上的活动和移动的图片。
更多的专门的项能够通过继承画布项类来实现。从一个QCanvasItem的派生类(通常为 QCanvasPolygonalItem)来实现比直接从QCanvasItem继承更容易。
QCanvasRectangle Class Reference
[canvas module]
[canvas module]
The QCanvasRectangle class provides a rectangle on a QCanvas.
#include <qcanvas.h>
Inherits QCanvasPolygonalItem.
List of all member functions.
Public Members
∙ QCanvasRectangle ( QCanvas * canvas )
∙ QCanvasRectangle ( const QRect & r, QCanvas * canvas )
∙ QCanvasRectangle ( int x, int y, int width, int height, QCanvas * canvas )
∙ ~QCanvasRectangle ()
∙ int width () const
∙ int height () const
∙ void setSize ( int width, int height )
∙ QSize size () const
∙ QRect rect () const
∙ virtual int rtti () const
Protected Members
∙ virtual void drawShape ( QPainter & p )
∙ virtual QPointArray chunks () const
Detailed Description
The QCanvasRectangle class provides a rectangle on a QCanvas.
This item paints a single rectangle which may have any pen() and brush(), but may not be tilted/rotated. For rotated rectangles, use QCanvasPolygon.
The rectangle's size and initial position can be set in the constructor. The size can be set or changed later using setSize(). Use height() and width() to retrieve the rectangle's dimensions.
The rectangle can be drawn on a painter with drawShape().
Like any other canvas item rectangles can be moved with QCanvasItem::move() and QCanvasItem::moveBy(), or by setting coordinates with QCanvasItem::setX(), QCanvasItem::setY() and QCanvasItem::setZ().
canvas动画
See also Graphics Classes and Image Processing Classes.
Member Function Documentation
QCanvasRectangle::QCanvasRectangle ( QCanvas * canvas )
Constructs a rectangle at position (0,0) with both width and height set to 32 pixels on canvas.
QCanvasRectangle::QCanvasRectangle ( const QRect & r, QCanvas * canvas )
Constructs a rectangle positioned and sized by r on canvas.
QCanvasRectangle::QCanvasRectangle ( int x, int y, int width, int height, QCanvas * canvas )
Constructs a rectangle at position (x, y) and size width by height, on canvas.
QCanvasRectangle::~QCanvasRectangle ()
Destroys the rectangle.
QPointArray QCanvasRectangle::chunks () const [virtual protected]
Simply calls QCanvasItem::chunks().
void QCanvasRectangle::drawShape ( QPainter & p ) [virtual protected]
Draws the rectangle on painter p.
Example: canvas/canvas.cpp.
Reimplemented from QCanvasPolygonalItem.
int QCanvasRectangle::height () const
Returns the height of the rectangle.
QRect QCanvasRectangle::rect () const
Returns the integer-converted x(), y() position and size() of the rectangle as a QRect.
int QCanvasRectangle::rtti () const [virtual]
Returns 5 (QCanvasItem::Rtti_Rectangle).
See also QCanvasItem::rtti().
Reimplemented from QCanvasPolygonalItem.
void QCanvasRectangle::setSize ( int width, int height )
Sets the width and height of the rectangle.
QSize QCanvasRectangle::size () const
Returns the width() and height() of the rectangle.
See also rect() and setSize().
int QCanvasRectangle::width () const
Returns the width of the rectangle.
槽就是一个返回值为void的函数。信号和槽机制是类型安全的,一个信号的签名必须与它的接收槽的签名相匹配,这样编译器就可以帮助我们检查类型是否匹配。信号和槽可以使用任何数量、类型的参数。
QT的窗口部件已经有很多预定义的信号,也有很多预定义的槽,但我们总是通过继承来加入我们自己的信号和自己的槽,这样我们就可以处理感兴趣的信号了。凡是从QObject类或者它的某个子类继承的所有类都可以包含信号和槽。当某个事件发生后,被指定的信号就会被发射,它不知道也没有必要知道是否有槽连接了该信号,这就是信息封装。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论