QPolygon 类

The QPolygon class provides a vector of points using integer precision. 更多...

头: #include <QPolygon>
qmake: QT += gui
继承: QVector

注意: 此类的所有函数 可重入 .

公共函数

QPolygon ()
QPolygon (int size )
QPolygon (const QVector<QPoint> & points )
QPolygon (QVector<QPoint> && v )
QPolygon (const QRect & rectangle , bool closed = false)
QPolygon (const QPolygon & polygon )
QPolygon (QPolygon && other )
~QPolygon ()
QRect boundingRect () const
bool containsPoint (const QPoint & point , Qt::FillRule fillRule ) const
QPolygon intersected (const QPolygon & r ) const
void point (int index , int * x , int * y ) const
QPoint point (int index ) const
void putPoints (int index , int nPoints , int firstx , int firsty , ... )
void putPoints (int index , int nPoints , const QPolygon & fromPolygon , int fromIndex = 0)
void setPoint (int index , int x , int y )
void setPoint (int index , const QPoint & point )
void setPoints (int nPoints , const int * points )
void setPoints (int nPoints , int firstx , int firsty , ... )
QPolygon subtracted (const QPolygon & r ) const
void swap (QPolygon & other )
void translate (int dx , int dy )
void translate (const QPoint & offset )
QPolygon translated (int dx , int dy ) const
QPolygon translated (const QPoint & offset ) const
QPolygon united (const QPolygon & r ) const
operator QVariant () const
QPolygon & operator= (QPolygon && other )
QPolygon & operator= (const QPolygon & other )
QDataStream & operator<< (QDataStream & stream , const QPolygon & polygon )
QDataStream & operator>> (QDataStream & stream , QPolygon & polygon )

额外继承成员

详细描述

The QPolygon class provides a vector of points using integer precision.

A QPolygon object is a QVector < QPoint >. The easiest way to add points to a QPolygon is to use QVector 's streaming operator, as illustrated below:

        QPolygon polygon;
        polygon << QPoint(10, 20) << QPoint(20, 30);
					

In addition to the functions provided by QVector , QPolygon provides some point-specific functions.

Each point in a polygon can be retrieved by passing its index to the point () function. To populate the polygon, QPolygon 提供 setPoint () function to set the point at a given index, the setPoints () function to set all the points in the polygon (resizing it to the given number of points), and the putPoints () function which copies a number of given points into the polygon from a specified index (resizing the polygon if necessary).

QPolygon 提供 boundingRect () 和 translate () functions for geometry functions. Use the QMatrix::map () function for more general transformations of QPolygons.

The QPolygon class is 隐式共享 .

另请参阅 QVector , QPolygonF ,和 QLine .

成员函数文档编制

QPolygon:: QPolygon ()

Constructs a polygon with no points.

另请参阅 QVector::isEmpty ().

QPolygon:: QPolygon ( int size )

Constructs a polygon of the given size . Creates an empty polygon if size == 0.

另请参阅 QVector::isEmpty ().

QPolygon:: QPolygon (const QVector < QPoint > & points )

Constructs a polygon containing the specified points .

另请参阅 setPoints ().

QPolygon:: QPolygon ( QVector < QPoint > && v )

Default constructs an instance of QPolygon.

QPolygon:: QPolygon (const QRect & rectangle , bool closed = false)

Constructs a polygon from the given rectangle 。若 closed is false, the polygon just contains the four points of the rectangle ordered clockwise, otherwise the polygon's fifth point is set to rectangle . topLeft ().

Note that the bottom-right corner of the rectangle is located at (rectangle.x() + rectangle.width(), rectangle.y() + rectangle.height()).

另请参阅 setPoints ().

QPolygon:: QPolygon (const QPolygon & polygon )

构造副本为给定 polygon .

另请参阅 setPoints ().

QPolygon:: QPolygon ( QPolygon && other )

移动拷贝构造函数。

QPolygon:: ~QPolygon ()

Destroys the polygon.

QRect QPolygon:: boundingRect () const

Returns the bounding rectangle of the polygon, or QRect (0, 0, 0, 0) if the polygon is empty.

另请参阅 QVector::isEmpty ().

bool QPolygon:: containsPoint (const QPoint & point , Qt::FillRule fillRule ) const

返回 true 若给定 point is inside the polygon according to the specified fillRule ;否则返回 false .

该函数在 Qt 4.3 引入。

QPolygon QPolygon:: intersected (const QPolygon & r ) const

Returns a polygon which is the intersection of this polygon and r .

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

该函数在 Qt 4.3 引入。

void QPolygon:: point ( int index , int * x , int * y ) const

Extracts the coordinates of the point at the given index to * x 和 * y (if they are valid pointers).

另请参阅 setPoint ().

QPoint QPolygon:: point ( int index ) const

这是重载函数。

Returns the point at the given index .

void QPolygon:: putPoints ( int index , int nPoints , int firstx , int firsty , ... )

拷贝 nPoints points from the variable argument list into this polygon from the given index .

The points are given as a sequence of integers, starting with firstx then firsty , and so on. The polygon is resized if index+nPoints exceeds its current size.

The example code creates a polygon with three points (4,5), (6,7) and (8,9), by expanding the polygon from 1 to 3 points:

        QPolygon polygon(1);
        polygon[0] = QPoint(4, 5);
        polygon.putPoints(1, 2, 6,7, 8,9);
					

The following code has the same result, but here the putPoints() function overwrites rather than extends:

        QPolygon polygon(3);
        polygon.putPoints(0, 3, 4,5, 0,0, 8,9);
        polygon.putPoints(1, 1, 6,7);
					

另请参阅 setPoints ().

void QPolygon:: putPoints ( int index , int nPoints , const QPolygon & fromPolygon , int fromIndex = 0)

这是重载函数。

拷贝 nPoints points from the given fromIndex ( 0 by default) in fromPolygon into this polygon, starting at the specified index 。例如:

        QPolygon polygon1;
        polygon1.putPoints(0, 3, 1,2, 0,0, 5,6);
        // polygon1 is now the three-point polygon(1,2, 0,0, 5,6);
        QPolygon polygon2;
        polygon2.putPoints(0, 3, 4,4, 5,5, 6,6);
        // polygon2 is now (4,4, 5,5, 6,6);
        polygon1.putPoints(2, 3, polygon2);
        // polygon1 is now the five-point polygon(1,2, 0,0, 4,4, 5,5, 6,6);
					

void QPolygon:: setPoint ( int index , int x , int y )

Sets the point at the given index to the point specified by ( x , y ).

另请参阅 point (), putPoints (),和 setPoints ().

void QPolygon:: setPoint ( int index , const QPoint & point )

这是重载函数。

Sets the point at the given index 到给定 point .

void QPolygon:: setPoints ( int nPoints , const int * points )

Resizes the polygon to nPoints and populates it with the given points .

The example code creates a polygon with two points (10, 20) and (30, 40):

        static const int points[] = { 10, 20, 30, 40 };
        QPolygon polygon;
        polygon.setPoints(2, points);
					

另请参阅 setPoint () 和 putPoints ().

void QPolygon:: setPoints ( int nPoints , int firstx , int firsty , ... )

这是重载函数。

Resizes the polygon to nPoints and populates it with the points specified by the variable argument list. The points are given as a sequence of integers, starting with firstx then firsty , and so on.

The example code creates a polygon with two points (10, 20) and (30, 40):

        QPolygon polygon;
        polygon.setPoints(2, 10, 20, 30, 40);
					

QPolygon QPolygon:: subtracted (const QPolygon & r ) const

Returns a polygon which is r subtracted from this polygon.

Set operations on polygons will treat the polygons as areas. Non-closed polygons will be treated as implicitly closed.

该函数在 Qt 4.3 引入。

void QPolygon:: swap ( QPolygon & other )

Swaps polygon other with this polygon. This operation is very fast and never fails.

该函数在 Qt 4.8 引入。

void QPolygon:: translate ( int dx , int dy )

Translates all points in the polygon by ( dx , dy ).

另请参阅 translated ().

void QPolygon:: translate (const QPoint & offset )

这是重载函数。

Translates all points in the polygon by the given offset .

另请参阅 translated ().

QPolygon QPolygon:: translated ( int dx , int dy ) const

Returns a copy of the polygon that is translated by ( dx , dy ).

该函数在 Qt 4.6 引入。

另请参阅 translate ().

QPolygon QPolygon:: translated (const QPoint & offset ) const

这是重载函数。

Returns a copy of the polygon that is translated by the given offset .

该函数在 Qt 4.6 引入。

另请参阅 translate ().

QPolygon QPolygon:: united (const QPolygon & r ) const

Returns a polygon which is the union of this polygon and r .

Set operations on polygons, will treat the polygons as areas, and implicitly close the polygon.

该函数在 Qt 4.3 引入。

另请参阅 intersected () 和 subtracted ().

QPolygon:: operator QVariant () const

Returns the polygon as a QVariant

QPolygon &QPolygon:: operator= ( QPolygon && other )

移动赋值运算符。

QPolygon &QPolygon:: operator= (const QPolygon & other )

拷贝赋值运算符。

相关非成员

QDataStream & operator<< ( QDataStream & stream , const QPolygon & polygon )

写入给定 polygon 到给定 stream ,并返回流引用。

该函数在 Qt 4.4 引入。

另请参阅 序列化 Qt 数据类型 .

QDataStream & operator>> ( QDataStream & stream , QPolygon & polygon )

Reads a polygon from the given stream 进给定 polygon ,并返回流引用。

该函数在 Qt 4.4 引入。

另请参阅 序列化 Qt 数据类型 .