📄 qpainter.h
字号:
/****************************************************************************** $Id: qt/src/kernel/qpainter.h 2.3.6 edited 2003-05-22 $**** Definition of QPainter class**** Created : 940112**** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.**** This file is part of the kernel module of the Qt GUI Toolkit.**** This file may be distributed under the terms of the Q Public License** as defined by Trolltech AS of Norway and appearing in the file** LICENSE.QPL included in the packaging of this file.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition** licenses may use this file in accordance with the Qt Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for** information about Qt Commercial License Agreements.** See http://www.trolltech.com/qpl/ for QPL licensing information.** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef QPAINTER_H#define QPAINTER_H#ifndef QT_H#include "qpaintdevice.h"#include "qcolor.h"#include "qfontmetrics.h"#include "qfontinfo.h"#include "qregion.h"#include "qpen.h"#include "qbrush.h"#include "qpointarray.h"#include "qwmatrix.h"#endif // QT_Hclass QGfx;class QTextCodec;class Q_EXPORT QPainter : public Qt{public: QPainter(); QPainter( const QPaintDevice * ); QPainter( const QPaintDevice *, const QWidget * ); ~QPainter(); bool begin( const QPaintDevice * ); bool begin( const QPaintDevice *, const QWidget * ); bool end(); QPaintDevice *device() const;#ifdef _WS_QWS_ QGfx * internalGfx();#endif static void redirect( QPaintDevice *pdev, QPaintDevice *replacement ); bool isActive() const; void flush(); void save(); void restore(); // Drawing tools QFontMetrics fontMetrics() const; QFontInfo fontInfo() const; const QFont &font() const; void setFont( const QFont & ); const QPen &pen() const; void setPen( const QPen & ); void setPen( PenStyle ); void setPen( const QColor & ); const QBrush &brush() const; void setBrush( const QBrush & ); void setBrush( BrushStyle ); void setBrush( const QColor & ); QPoint pos() const; // Drawing attributes/modes const QColor &backgroundColor() const; void setBackgroundColor( const QColor & ); BGMode backgroundMode() const; void setBackgroundMode( BGMode ); RasterOp rasterOp() const; void setRasterOp( RasterOp ); const QPoint &brushOrigin() const; void setBrushOrigin( int x, int y ); void setBrushOrigin( const QPoint & ); // Scaling and transformations// PaintUnit unit() const; // get set painter unit// void setUnit( PaintUnit ); // NOT IMPLEMENTED!!! bool hasViewXForm() const; bool hasWorldXForm() const;#ifndef QT_NO_TRANSFORMATIONS void setViewXForm( bool ); // set xform on/off QRect window() const; // get window void setWindow( const QRect & ); // set window void setWindow( int x, int y, int w, int h ); QRect viewport() const; // get viewport void setViewport( const QRect & ); // set viewport void setViewport( int x, int y, int w, int h ); void setWorldXForm( bool ); // set world xform on/off const QWMatrix &worldMatrix() const; // get/set world xform matrix void setWorldMatrix( const QWMatrix &, bool combine=FALSE ); void saveWorldMatrix(); void restoreWorldMatrix(); void scale( double sx, double sy ); void shear( double sh, double sv ); void rotate( double a );#endif void translate( double dx, double dy ); void resetXForm(); QPoint xForm( const QPoint & ) const; // map virtual -> device QRect xForm( const QRect & ) const; QPointArray xForm( const QPointArray & ) const; QPointArray xForm( const QPointArray &, int index, int npoints ) const; QPoint xFormDev( const QPoint & ) const; // map device -> virtual QRect xFormDev( const QRect & ) const; QPointArray xFormDev( const QPointArray & ) const; QPointArray xFormDev( const QPointArray &, int index, int npoints ) const; // Clipping void setClipping( bool ); // set clipping on/off bool hasClipping() const; const QRegion &clipRegion() const; void setClipRect( const QRect & ); // set clip rectangle void setClipRect( int x, int y, int w, int h ); void setClipRegion( const QRegion &);// set clip region // Graphics drawing functions void drawPoint( int x, int y ); void drawPoint( const QPoint & ); void drawPoints( const QPointArray& a, int index=0, int npoints=-1 ); void moveTo( int x, int y ); void moveTo( const QPoint & ); void lineTo( int x, int y ); void lineTo( const QPoint & ); void drawLine( int x1, int y1, int x2, int y2 ); void drawLine( const QPoint &, const QPoint & ); void drawRect( int x, int y, int w, int h ); void drawRect( const QRect & ); void drawWinFocusRect( int x, int y, int w, int h ); void drawWinFocusRect( int x, int y, int w, int h, const QColor &bgColor ); void drawWinFocusRect( const QRect & ); void drawWinFocusRect( const QRect &, const QColor &bgColor ); void drawRoundRect( int x, int y, int w, int h, int, int ); void drawRoundRect( const QRect &, int, int ); void drawRoundRect( int x, int y, int w, int h ); void drawRoundRect( const QRect & ); void drawEllipse( int x, int y, int w, int h ); void drawEllipse( const QRect & ); void drawArc( int x, int y, int w, int h, int a, int alen ); void drawArc( const QRect &, int a, int alen ); void drawPie( int x, int y, int w, int h, int a, int alen ); void drawPie( const QRect &, int a, int alen ); void drawChord( int x, int y, int w, int h, int a, int alen ); void drawChord( const QRect &, int a, int alen ); void drawLineSegments( const QPointArray &, int index=0, int nlines=-1 ); void drawPolyline( const QPointArray &, int index=0, int npoints=-1 ); void drawPolygon( const QPointArray &, bool winding=FALSE, int index=0, int npoints=-1 ); void drawQuadBezier( const QPointArray &, int index=0 ); void drawPixmap( int x, int y, const QPixmap &, int sx=0, int sy=0, int sw=-1, int sh=-1 ); void drawPixmap( const QPoint &, const QPixmap &, const QRect &sr ); void drawPixmap( const QPoint &, const QPixmap & ); void drawImage( int x, int y, const QImage &, int sx=0, int sy=0, int sw=-1, int sh=-1 ); void drawImage( const QPoint &, const QImage &, const QRect &sr ); void drawImage( const QPoint &, const QImage & ); void drawImage( int x, int y, const QImage &, int sx, int sy, int sw, int sh, int conversion_flags ); void drawImage( const QPoint &, const QImage &, const QRect &sr, int conversion_flags ); void drawImage( const QPoint &, const QImage &, int conversion_flags ); void drawTiledPixmap( int x, int y, int w, int h, const QPixmap &, int sx=0, int sy=0 ); void drawTiledPixmap( const QRect &, const QPixmap &, const QPoint & ); void drawTiledPixmap( const QRect &, const QPixmap & );#ifndef QT_NO_PICTURE void drawPicture( const QPicture & );#endif void fillRect( int x, int y, int w, int h, const QBrush & ); void fillRect( const QRect &, const QBrush & ); void eraseRect( int x, int y, int w, int h ); void eraseRect( const QRect & ); // Text drawing functions void drawText( int x, int y, const QString &, int len = -1 ); void drawText( const QPoint &, const QString &, int len = -1 ); void drawText( int x, int y, int w, int h, int flags, const QString&, int len = -1, QRect *br=0, char **internal=0 ); void drawText( const QRect &, int flags, const QString&, int len = -1, QRect *br=0, char **internal=0 ); //##### void drawText( const QPoint &, const QString &, int flags, int rotation = 0); // Text drawing functions QRect boundingRect( int x, int y, int w, int h, int flags, const QString&, int len = -1, char **intern=0 ); QRect boundingRect( const QRect &, int flags, const QString&, int len = -1, char **intern=0 ); int tabStops() const; void setTabStops( int ); int *tabArray() const; void setTabArray( int * ); // Other functions#if defined(_WS_WIN_) HDC handle() const;#elif defined(_WS_X11_) HANDLE handle() const;#endif static void initialize(); static void cleanup();private: void init(); void updateFont(); void updatePen(); void updateBrush();#ifndef QT_NO_TRANSFORMATIONS void updateXForm(); void updateInvXForm();#endif void map( int, int, int *rx, int *ry ) const; void map( int, int, int, int, int *, int *, int *, int * ) const; void mapInv( int, int, int *, int * ) const; void mapInv( int, int, int, int, int *, int *, int *, int * ) const; void drawPolyInternal( const QPointArray &, bool close=TRUE ); void drawWinFocusRect( int x, int y, int w, int h, bool xorPaint, const QColor &penColor ); enum { IsActive=0x01, ExtDev=0x02, IsStartingUp=0x04, NoCache=0x08, VxF=0x10, WxF=0x20, ClipOn=0x40, SafePolygon=0x80, MonoDev=0x100, DirtyFont=0x200, DirtyPen=0x400, DirtyBrush=0x800, RGBColor=0x1000, FontMet=0x2000, FontInf=0x4000, CtorBegin=0x8000, UsePrivateCx=0x10000, VolatileDC=0x20000, PaintEventClipOn=0x40000 }; uint flags; bool testf( uint b ) const { return (flags&b)!=0; } void setf( uint b ) { flags |= b; } void setf( uint b, bool v ); void clearf( uint b ) { flags &= (uint)(~b); } void fix_neg_rect( int *x, int *y, int *w, int *h ); QPaintDevice *pdev; QColor bg_col; uchar bg_mode; uchar rop; uchar pu; QPoint bro; QFont cfont; QPen cpen; QBrush cbrush; QRegion crgn; int tabstops; int *tabarray; int tabarraylen; // Transformations#ifndef QT_NO_TRANSFORMATIONS QCOORD wx, wy, ww, wh; QCOORD vx, vy, vw, vh;#if defined(QT_EZX_MUNGE) /* Alignment problem? */ int m_int_5c;#endif QWMatrix wxmat; // Cached composition (and inverse) of transformations QWMatrix xmat; QWMatrix ixmat; double m11() const { return xmat.m11(); } double m12() const { return xmat.m12(); } double m21() const { return xmat.m21(); } double m22() const { return xmat.m22(); } double dx() const { return xmat.dx(); } double dy() const { return xmat.dy(); } double im11() const { return ixmat.m11(); } double im12() const { return ixmat.m12(); } double im21() const { return ixmat.m21(); } double im22() const { return ixmat.m22(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -