NAME
QCanvasView - On-screen view of a QCanvas
SYNOPSIS
#include <
qcanvas.h>
Inherits QScrollView.
Public Members
<li class=fn>
QCanvasView ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) <li class=fn>
QCanvasView ( QCanvas * canvas, QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) <li class=fn>
~QCanvasView () <li class=fn>QCanvas *
canvas () const <li class=fn>void
setCanvas ( QCanvas * canvas ) <li class=fn>const QWMatrix &
worldMatrix () const <li class=fn>const QWMatrix &
inverseWorldMatrix () const <li class=fn>bool
setWorldMatrix ( const QWMatrix & wm )
Protected Members
<li class=fn>virtual void
drawContents ( QPainter * p, int cx, int cy, int cw, int ch ) <li class=fn>virtual QSize
sizeHint () const
DESCRIPTION
The QCanvasView class provides an on-screen view of a QCanvas.
A QCanvasView is widget which provides a view of a QCanvas.
If you want users to be able to interact with a canvas view, subclass QCanvasView. You might then reimplement QScrollView::contentsMousePressEvent(). For example:
void MyCanvasView::contentsMousePressEvent( QMouseEvent* e )
{
QCanvasItemList l = canvas()->collisions(e->pos());
for (QCanvasItemList::Iterator it=l.begin(); it!=l.end(); ++it) {
if ( (*it)->rtti() == QCanvasRectangle::RTTI )
qDebug("A QCanvasRectangle lies somewhere at this point");
}
}
The canvas view shows canvas canvas(); this can be changed using setCanvas().
A transformation matrix can be used to transform the view of the canvas in various ways, for example, zooming in or out or rotating. For example:
QWMatrix wm;
wm.scale( 2, 2 ); // Zooms in by 2 times
wm.rotate( 90 ); // Rotates 90 degrees counter clockwise
// around the origin.
wm.translate( 0, -canvas->height() );
// moves the canvas down so what was visible
// before is still visible.
myCanvasView->setWorldMatrix( wm );
Use setWorldMatrix() to set the canvas view's world matrix: you must ensure that the world matrix is invertible. The current world matrix is retrievable with worldMatrix(), and its inversion is retrievable with inverseWorldMatrix().
Example:
The following code finds the part of the canvas that is visible in this view, i.e. the bounding rectangle of the view in canvas coordinates.
QRect rc = QRect( myCanvasView->contentsX(), myCanvasView->contentsY(),
myCanvasView->visibleWidth(), myCanvasView->visibleHeight() );
QRect canvasRect = myCanvasView->inverseWorldMatrix().mapRect(rc);
See also QWMatrix, QPainter::setWorldMatrix(), Graphics Classes, and Image Processing Classes.
MEMBER FUNCTION DOCUMENTATION
QCanvasView::QCanvasView ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 )
Constructs a QCanvasView with parent
parent, and name
name, using the widget flags
f. The canvas view is not associated with a canvas, so you must to call setCanvas() to view a canvas.
QCanvasView::QCanvasView ( QCanvas * canvas, QWidget * parent = 0, const char * name = 0, WFlags f = 0 )
This is an overloaded member function, provided for convenience. It behaves essentially like the above function.
Constructs a QCanvasView which views canvas canvas, with parent parent, and name name, using the widget flags f.
QCanvasView::~QCanvasView ()
Destroys the canvas view. The associated canvas is
not deleted.
QCanvas * QCanvasView::canvas () const
Returns a pointer to the canvas which the QCanvasView is currently showing.
void QCanvasView::drawContents ( QPainter * p, int cx, int cy, int cw, int ch ) [virtual protected]
Repaints part of the QCanvas that the canvas view is showing starting at
cx by
cy, with a width of
cw and a height of
ch using the painter
p.
Reimplemented from QScrollView.
const QWMatrix & QCanvasView::inverseWorldMatrix () const
Returns a reference to the inverse of the canvas view's current transformation matrix.
See also setWorldMatrix() and worldMatrix().
void QCanvasView::setCanvas ( QCanvas * canvas )
Sets the canvas that the QCanvasView is showing to the canvas
canvas.
bool QCanvasView::setWorldMatrix ( const QWMatrix & wm )
Sets the transformation matrix of the QCanvasView to
wm. The matrix must be invertible (i.e. if you create a world matrix that zooms out by 2 times, then the inverse of this matrix is one that will zoom in by 2 times).
When you use this, you should note that the performance of the QCanvasView will decrease considerably.
Returns FALSE if wm is not invertable; otherwise returns TRUE.
See also worldMatrix(), inverseWorldMatrix(), and QWMatrix::isInvertible().
Example: canvas/canvas.cpp.
QSize QCanvasView::sizeHint () const [virtual protected]
Suggests a size sufficient to view the entire canvas.
const QWMatrix & QCanvasView::worldMatrix () const
Returns a reference to the canvas view's current transformation matrix.
See also setWorldMatrix() and inverseWorldMatrix().
Example: canvas/canvas.cpp.
SEE ALSO
http://doc.trolltech.com/qcanvasview.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2001 Trolltech AS,
http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
AUTHOR
Generated automatically from the source code.
BUGS
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html.
Good bug reports help us to help you. Thank you.
The definitive Qt documentation is provided in HTML format; it is
located at $QTDIR/doc/html and can be read using Qt Assistant or with
a web browser. This man page is provided as a convenience for those
users who prefer man pages, although this format is not officially
supported by Trolltech.
If you find errors in this manual page, please report them to
qt-bugs@trolltech.com.
Please include the name of the manual page (qcanvasview.3qt) and the Qt
version (3.3.3).
Index
- NAME
-
- SYNOPSIS
-
- Public Members
-
- Protected Members
-
- DESCRIPTION
-
- MEMBER FUNCTION DOCUMENTATION
-
- QCanvasView::QCanvasView ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 )
-
- QCanvasView::QCanvasView ( QCanvas * canvas, QWidget * parent = 0, const char * name = 0, WFlags f = 0 )
-
- QCanvasView::~QCanvasView ()
-
- QCanvas * QCanvasView::canvas () const
-
- void QCanvasView::drawContents ( QPainter * p, int cx, int cy, int cw, int ch ) [virtual protected]
-
- const QWMatrix & QCanvasView::inverseWorldMatrix () const
-
- void QCanvasView::setCanvas ( QCanvas * canvas )
-
- bool QCanvasView::setWorldMatrix ( const QWMatrix & wm )
-
- QSize QCanvasView::sizeHint () const [virtual protected]
-
- const QWMatrix & QCanvasView::worldMatrix () const
-
- SEE ALSO
-
- COPYRIGHT
-
- AUTHOR
-
- BUGS
-