📄 canvas-example.html
字号:
}void <a name="f613"></a>Main::moveU(){ <a href="qwmatrix.html">QWMatrix</a> m = editor-><a href="qcanvasview.html#worldMatrix">worldMatrix</a>(); m.<a href="qwmatrix.html#translate">translate</a>( 0, -16 ); editor-><a href="qcanvasview.html#setWorldMatrix">setWorldMatrix</a>( m );}void <a name="f614"></a>Main::moveD(){ <a href="qwmatrix.html">QWMatrix</a> m = editor-><a href="qcanvasview.html#worldMatrix">worldMatrix</a>(); m.<a href="qwmatrix.html#translate">translate</a>( 0, +16 ); editor-><a href="qcanvasview.html#setWorldMatrix">setWorldMatrix</a>( m );}void <a name="f615"></a>Main::print(){ if ( !printer ) printer = new <a href="qprinter.html">QPrinter</a>; if ( printer->setup(this) ) { <a href="qpainter.html">QPainter</a> pp(printer);<a name="x2684"></a> canvas.<a href="qcanvas.html#drawArea">drawArea</a>(QRect(0,0,canvas.<a href="qcanvas.html#width">width</a>(),canvas.<a href="qcanvas.html#height">height</a>()),&pp,FALSE); }}void <a name="f616"></a>Main::addSprite(){ <a href="qcanvasitem.html">QCanvasItem</a>* i = new BouncyLogo(&canvas);<a name="x2694"></a> i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256);<a name="x2695"></a> i-><a href="qcanvasitem.html#show">show</a>();}QString butterfly_fn;QString logo_fn;void <a name="f617"></a>Main::addButterfly(){ if ( butterfly_fn.isEmpty() ) return; if ( !butterflyimg ) { butterflyimg = new <a href="qimage.html">QImage</a>[4]; butterflyimg[0].load( butterfly_fn ); butterflyimg[1] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.75), int(butterflyimg[0].height()*0.75) ); butterflyimg[2] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.5), int(butterflyimg[0].height()*0.5) ); butterflyimg[3] = butterflyimg[0].smoothScale( int(butterflyimg[0].width()*0.25), int(butterflyimg[0].height()*0.25) ); } <a href="qcanvaspolygonalitem.html">QCanvasPolygonalItem</a>* i = new ImageItem(butterflyimg[rand()%4],&canvas);<a name="x2691"></a> i-><a href="qcanvasitem.html#move">move</a>(rand()%(canvas.<a href="qcanvas.html#width">width</a>()-butterflyimg-><a href="qimage.html#width">width</a>()), rand()%(canvas.<a href="qcanvas.html#height">height</a>()-butterflyimg-><a href="qimage.html#height">height</a>())); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256+250); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f618"></a>Main::addLogo(){ if ( logo_fn.isEmpty() ) return; if ( !logoimg ) { logoimg = new <a href="qimage.html">QImage</a>[4]; logoimg[0].load( logo_fn ); logoimg[1] = logoimg[0].smoothScale( int(logoimg[0].width()*0.75), int(logoimg[0].height()*0.75) ); logoimg[2] = logoimg[0].smoothScale( int(logoimg[0].width()*0.5), int(logoimg[0].height()*0.5) ); logoimg[3] = logoimg[0].smoothScale( int(logoimg[0].width()*0.25), int(logoimg[0].height()*0.25) ); } <a href="qcanvaspolygonalitem.html">QCanvasPolygonalItem</a>* i = new ImageItem(logoimg[rand()%4],&canvas); i-><a href="qcanvasitem.html#move">move</a>(rand()%(canvas.<a href="qcanvas.html#width">width</a>()-logoimg-><a href="qimage.html#width">width</a>()), rand()%(canvas.<a href="qcanvas.html#height">height</a>()-logoimg-><a href="qimage.html#width">width</a>())); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256+256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f619"></a>Main::addCircle(){ <a href="qcanvaspolygonalitem.html">QCanvasPolygonalItem</a>* i = new <a href="qcanvasellipse.html">QCanvasEllipse</a>(50,50,&canvas);<a name="x2699"></a> i-><a href="qcanvaspolygonalitem.html#setBrush">setBrush</a>( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i-><a href="qcanvasitem.html#move">move</a>(rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>()); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f620"></a>Main::addHexagon(){ <a href="qcanvaspolygon.html">QCanvasPolygon</a>* i = new <a href="qcanvaspolygon.html">QCanvasPolygon</a>(&canvas); const int size = canvas.<a href="qcanvas.html#width">width</a>() / 25; <a href="qpointarray.html">QPointArray</a> pa(6); pa[0] = QPoint(2*size,0); pa[1] = QPoint(size,-size*173/100); pa[2] = QPoint(-size,-size*173/100); pa[3] = QPoint(-2*size,0); pa[4] = QPoint(-size,size*173/100); pa[5] = QPoint(size,size*173/100);<a name="x2698"></a> i-><a href="qcanvasline.html#setPoints">setPoints</a>(pa); i-><a href="qcanvaspolygonalitem.html#setBrush">setBrush</a>( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i-><a href="qcanvasitem.html#move">move</a>(rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>()); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f621"></a>Main::addPolygon(){ <a href="qcanvaspolygon.html">QCanvasPolygon</a>* i = new <a href="qcanvaspolygon.html">QCanvasPolygon</a>(&canvas); const int size = canvas.<a href="qcanvas.html#width">width</a>()/2; <a href="qpointarray.html">QPointArray</a> pa(6); pa[0] = QPoint(0,0); pa[1] = QPoint(size,size/5); pa[2] = QPoint(size*4/5,size); pa[3] = QPoint(size/6,size*5/4); pa[4] = QPoint(size*3/4,size*3/4); pa[5] = QPoint(size*3/4,size/4); i-><a href="qcanvasline.html#setPoints">setPoints</a>(pa); i-><a href="qcanvaspolygonalitem.html#setBrush">setBrush</a>( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i-><a href="qcanvasitem.html#move">move</a>(rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>()); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f622"></a>Main::addSpline(){ <a href="qcanvasspline.html">QCanvasSpline</a>* i = new <a href="qcanvasspline.html">QCanvasSpline</a>(&canvas); const int size = canvas.<a href="qcanvas.html#width">width</a>()/6; <a href="qpointarray.html">QPointArray</a> pa(12); pa[0] = QPoint(0,0); pa[1] = QPoint(size/2,0); pa[2] = QPoint(size,size/2); pa[3] = QPoint(size,size); pa[4] = QPoint(size,size*3/2); pa[5] = QPoint(size/2,size*2); pa[6] = QPoint(0,size*2); pa[7] = QPoint(-size/2,size*2); pa[8] = QPoint(size/4,size*3/2); pa[9] = QPoint(0,size); pa[10]= QPoint(-size/4,size/2); pa[11]= QPoint(-size/2,0);<a name="x2702"></a> i-><a href="qcanvasspline.html#setControlPoints">setControlPoints</a>(pa); i-><a href="qcanvaspolygonalitem.html#setBrush">setBrush</a>( QColor(rand()%32*8,rand()%32*8,rand()%32*8) ); i-><a href="qcanvasitem.html#move">move</a>(rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>()); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f623"></a>Main::addText(){ <a href="qcanvastext.html">QCanvasText</a>* i = new <a href="qcanvastext.html">QCanvasText</a>(&canvas);<a name="x2705"></a> i-><a href="qcanvastext.html#setText">setText</a>("QCanvasText"); i-><a href="qcanvasitem.html#move">move</a>(rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>()); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f624"></a>Main::addLine(){ <a href="qcanvasline.html">QCanvasLine</a>* i = new <a href="qcanvasline.html">QCanvasLine</a>(&canvas); i-><a href="qcanvasline.html#setPoints">setPoints</a>( rand()%canvas.<a href="qcanvas.html#width">width</a>(), rand()%canvas.<a href="qcanvas.html#height">height</a>(), rand()%canvas.<a href="qcanvas.html#width">width</a>(), rand()%canvas.<a href="qcanvas.html#height">height</a>() );<a name="x2700"></a> i-><a href="qcanvaspolygonalitem.html#setPen">setPen</a>( QPen(QColor(rand()%32*8,rand()%32*8,rand()%32*8), 6) ); i-><a href="qcanvasitem.html#setZ">setZ</a>(rand()%256); i-><a href="qcanvasitem.html#show">show</a>();}void <a name="f625"></a>Main::addMesh(){ int x0 = 0; int y0 = 0; if ( !tb ) tb = new <a href="qbrush.html">QBrush</a>( Qt::red ); if ( !tp ) tp = new <a href="qpen.html">QPen</a>( Qt::black ); int nodecount = 0; int w = canvas.<a href="qcanvas.html#width">width</a>(); int h = canvas.<a href="qcanvas.html#height">height</a>(); const int dist = 30; int rows = h / dist; int cols = w / dist;#ifndef QT_NO_PROGRESSDIALOG <a href="qprogressdialog.html">QProgressDialog</a> progress( "Creating mesh...", "Abort", rows, this, "progress", TRUE );#endif <a href="qmemarray.html">QMemArray</a><NodeItem*> lastRow(cols); for ( int j = 0; j < rows; j++ ) { int n = j%2 ? cols-1 : cols; NodeItem *prev = 0; for ( int i = 0; i < n; i++ ) { NodeItem *el = new NodeItem( &canvas ); nodecount++; int r = rand(); int xrand = r %20; int yrand = (r/20) %20; el-><a href="qcanvasitem.html#move">move</a>( xrand + x0 + i*dist + (j%2 ? dist/2 : 0 ), yrand + y0 + j*dist ); if ( j > 0 ) { if ( i < cols-1 ) (new EdgeItem( lastRow[i], el, &canvas ))->show(); if ( j%2 ) (new EdgeItem( lastRow[i+1], el, &canvas ))->show(); else if ( i > 0 ) (new EdgeItem( lastRow[i-1], el, &canvas ))->show(); } if ( prev ) { (new EdgeItem( prev, el, &canvas ))->show(); } if ( i > 0 ) lastRow[i-1] = prev; prev = el; el-><a href="qcanvasitem.html#show">show</a>(); } lastRow[n-1]=prev;#ifndef QT_NO_PROGRESSDIALOG<a name="x2722"></a> progress.<a href="qprogressdialog.html#setProgress">setProgress</a>( j );<a name="x2723"></a> if ( progress.<a href="qprogressdialog.html#wasCancelled">wasCancelled</a>() ) break;#endif }#ifndef QT_NO_PROGRESSDIALOG progress.<a href="qprogressdialog.html#setProgress">setProgress</a>( rows );#endif // qDebug( "%d nodes, %d edges", nodecount, EdgeItem::count() );}void <a name="f626"></a>Main::addRectangle(){ <a href="qcanvaspolygonalitem.html">QCanvasPolygonalItem</a> *i = new <a href="qcanvasrectangle.html">QCanvasRectangle</a>( rand()%canvas.<a href="qcanvas.html#width">width</a>(),rand()%canvas.<a href="qcanvas.html#height">height</a>(), canvas.<a href="qcanvas.html#width">width</a>()/5,canvas.<a href="qcanvas.html#width">width</a>()/5,&canvas); int z = rand()%256; i-><a href="qcanvaspolygonalitem.html#setBrush">setBrush</a>( QColor(z,z,z) ); i-><a href="qcanvaspolygonalitem.html#setPen">setPen</a>( QPen(QColor(rand()%32*8,rand()%32*8,rand()%32*8), 6) ); i-><a href="qcanvasitem.html#setZ">setZ</a>(z); i-><a href="qcanvasitem.html#show">show</a>();}</pre><p> <hr><p> Main:<p> <pre>#include <<a href="qstatusbar-h.html">qstatusbar.h</a>>#include <<a href="qmessagebox-h.html">qmessagebox.h</a>>#include <<a href="qmenubar-h.html">qmenubar.h</a>>#include <<a href="qapplication-h.html">qapplication.h</a>>#include <<a href="qimage-h.html">qimage.h</a>>#include "canvas.h"#include <stdlib.h>extern QString butterfly_fn;extern QString logo_fn;int main(int argc, char** argv){ <a href="qapplication.html">QApplication</a> app(argc,argv); /* <a href="qapplication.html#qDebug">qDebug</a>("sizeof(QCanvasPolygonalItem)=%d",sizeof(QCanvasPolygonalItem)); <a href="qapplication.html#qDebug">qDebug</a>("sizeof(QCanvasText)=%d",sizeof(QCanvasText)); <a href="qapplication.html#qDebug">qDebug</a>("sizeof(QWidget)=%d",sizeof(QWidget)); <a href="qapplication.html#qDebug">qDebug</a>("sizeof(QLabel)=%d",sizeof(QLabel)); */ if ( argc > 1 ) butterfly_fn = argv[1]; else butterfly_fn = "butterfly.png"; if ( argc > 2 ) logo_fn = argv[2]; else logo_fn = "qtlogo.png"; <a href="qcanvas.html">QCanvas</a> canvas(800,600);<a name="x2739"></a> canvas.<a href="qcanvas.html#setAdvancePeriod">setAdvancePeriod</a>(30); Main m(canvas);<a name="x2746"></a> m.<a href="qwidget.html#resize">resize</a>(m.<a href="qwidget.html#sizeHint">sizeHint</a>());<a name="x2738"></a> qApp-><a href="qapplication.html#setMainWidget">setMainWidget</a>(&m); m.<a href="qwidget.html#setCaption">setCaption</a>("Qt Example - Canvas");<a name="x2747"></a><a name="x2734"></a> if ( QApplication::<a href="qapplication.html#desktop">desktop</a>()->width() > m.<a href="qwidget.html#width">width</a>() + 10<a name="x2741"></a> && QApplication::<a href="qapplication.html#desktop">desktop</a>()->height() > m.<a href="qwidget.html#height">height</a>() +30 )<a name="x2744"></a> m.<a href="qwidget.html#show">show</a>(); else<a name="x2745"></a> m.<a href="qwidget.html#showMaximized">showMaximized</a>(); m.<a href="qwidget.html#show">show</a>(); // m.help(); qApp-><a href="qapplication.html#setMainWidget">setMainWidget</a>(0); QObject::<a href="qobject.html#connect">connect</a>( qApp, SIGNAL(<a href="qapplication.html#lastWindowClosed">lastWindowClosed</a>()), qApp, SLOT(<a href="qapplication.html#quit">quit</a>()) ); return app.<a href="qapplication.html#exec">exec</a>();}</pre><p>See also <a href="examples.html">Examples</a>.<!-- eof --><p><address><hr><div align=center><table width=100% cellspacing=0 border=0><tr><td>Copyright © 2002 <a href="http://www.trolltech.com">Trolltech</a><td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a><td align=right><div align=right>Qt version 3.0.5</div></table></div></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -