Qt Toolkit - QPicture Class

| Classes - Annotated - Tree - Functions - Home - Structure

# QPicture Class Reference

The QPicture class is a paint device that records and replays QPainter commands. More...

`#include <qpicture.h>`

Inherits QPaintDevice.

List of all member functions.

## Public Members

- QPicture ( int formatVersion = 0 )
- ~QPicture ()
- bool isNull () const
- uint size () const
- const char* data () const
- virtual void setData ( const char * data, uint size )
- bool play ( QPainter * )
- bool load ( const QString & fileName )
- bool save ( const QString & fileName )
- QPicture& operator= ( const QPicture & )

## Protected Members

- virtual bool cmd ( int, QPainter *, QPDevCmdParam * ) (internal)
- virtual int metric ( int ) const

## Related Functions

(Note that these are not member functions.)

- QDataStream & operator>> (QDataStream & s, QPicture & r)
- QDataStream & operator<< (QDataStream & s, const QPicture & r)

## Detailed Description

The QPicture class is a paint device that records and replays QPainter commands.

A picture serializes painter commands to an IO device in a platform-independent format. A picture created under Windows can be read on a Sun SPARC.

Pictures are called meta-files on some platforms.

Qt pictures use a proprietary binary format. Unlike native picture (meta-file) formats on many window systems, Qt pictures have no limitations regarding the contents. Everything that can be painted can also be stored in a picture (fonts, pixmaps, regions, transformed graphics etc.)

Example of how to record a picture:

        QPicture  pic;
        QPainter  p;
        p.begin( &pic );                            // paint in picture
        p.drawEllipse( 10,20, 80,70 );              // draw an ellipse
        p.end();                                    // painting done
        pic.save( "drawing.pic" );                  // save picture

Example of how to replay a picture:

        QPicture  pic;
        pic.load( "drawing.pic" );                  // load picture
        QPainter  p;
        p.begin( &myWidget );                       // paint in myWidget
        p.drawPicture( pic );                       // draw the picture
        p.end();                                    // painting done

Examples: xform/xform.cpp picture/picture.cpp

## Member Function Documentation

### QPicture::QPicture ( int formatVer = 0 )

Constructs an empty picture.

The formatVersion parameter may be used to create a QPicture that can be read by applications that are compiled with earlier versions of Qt. Currently supported is formatVersion == 1, which will make a QPicture which is stored in a format that is binary compatible with Qt 1.x programs, and formatVersion == 2, for a format compatible with Qt 2.0.x programs.

Reading of pictures generated by earlier versions of Qt is supported and needs no special coding; the format is automatically detected.

### QPicture::~QPicture ()

Destructs the picture.

### const char* QPicture::data () const

Returns a pointer to the picture data. The returned pointer is null if the picture contains no data.

See also size() and isNull().

### bool QPicture::isNull () const

Returns TRUE if the picture contains no data, otherwise FALSE.

### bool QPicture::load ( const QString & fileName )

Loads a picture from the file specified by fileName and returns TRUE if successful, otherwise FALSE.

See also save().

Examples: xform/xform.cpp picture/picture.cpp

### int QPicture::metric ( int m ) const `[virtual protected]`

Internal implementation of the virtual QPaintDevice::metric() function.

Use the QPaintDeviceMetrics class instead.

A picture has the following hard coded values: width=640, height=480, dpi = 72, numcolors=16777216 and depth=24.

Reimplemented from QPaintDevice.

### QPicture& QPicture::operator= ( const QPicture & p )

Makes this picture be a deep copy of p.

### bool QPicture::play ( QPainter * painter )

Replays the picture using painter and returns TRUE if successful, or FALSE if the internal picture data is inconsistent.

This function does exactly the same as QPainter::drawPicture().

### bool QPicture::save ( const QString & fileName )

Saves a picture to the file specified by fileName and returns TRUE if successful, otherwise FALSE.

See also load().

Examples: picture/picture.cpp

### void QPicture::setData ( const char * data, uint size ) `[virtual]`

Sets the picture data directly from data and size. This function copies the input data.

See also data() and size().

### uint QPicture::size () const

Returns the size of the picture data.

See also data().

### bool QPicture::cmd ( int c, QPainter *, QPDevCmdParam * p ) `[virtual protected]`

For internal use only.

Reimplemented from QPaintDevice.

## Related Functions

### QDataStream & operator>> (QDataStream & s, QPicture & r)

Reads a QPicture from the stream and returns a reference to the stream.

### QDataStream & operator<< (QDataStream & s, const QPicture & r)

Writes a QPicture to the stream and returns a reference to the stream.

Search the documentation, FAQ, qt-interest archive and more (uses www.trolltech.com):

This file is part of the Qt toolkit, copyright © 1995-2000 Trolltech, all rights reserved.