1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Qt Tutorial - t10/cannon.cpp</title>
</head><body bgcolor="#ffffff">
<p>
<table width="100%">
<tr><td><a href="index.html">
<img width="100" height="100" src="qtlogo.png"
alt="Home" border="0"><img width="100"
height="100" src="face.png" alt="Home" border="0">
</a><td valign=top><div align=right><img src="dochead.png" width="472" height="27"><br>
<a href="classes.html"><b>Classes</b></a>
-<a href="annotated.html">Annotated</a>
- <a href="hierarchy.html">Tree</a>
-<a href="functions.html">Functions</a>
-<a href="index.html">Home</a>
-<a href="topicals.html"><b>Structure</b></a>
</div>
</table>
<p>
<h1 align=center>Source code for <a href="t10.html">tutorial 10</a>: cannon.cpp</h1><br clear="all">
<hr> <pre>/****************************************************************
**
** Implementation CannonField class, Qt tutorial 10
**
****************************************************************/
#include "cannon.h"
#include <<a href="qpainter-h.html">qpainter.h</a>>
#include <<a href="qpixmap-h.html">qpixmap.h</a>>
CannonField::CannonField( <a href="qwidget.html">QWidget</a> *parent, const char *name )
: <a href="qwidget.html">QWidget</a>( parent, name )
{
ang = 45;
f = 0;
<a href="qwidget.html#379ca0">setPalette</a>( <a href="qpalette.html">QPalette</a>( <a href="qcolor.html">QColor</a>( 250, 250, 200) ) );
}
void <a name="485"></a>CannonField::setAngle( int degrees )
{
if ( degrees < 5 )
degrees = 5;
if ( degrees > 70 )
degrees = 70;
if ( ang == degrees )
return;
ang = degrees;
<a href="qwidget.html#977d49">repaint</a>( cannonRect(), FALSE );
emit angleChanged( ang );
}
void <a name="486"></a>CannonField::setForce( int newton )
{
if ( newton < 0 )
newton = 0;
if ( f == newton )
return;
f = newton;
emit forceChanged( f );
}
void <a name="487"></a>CannonField::paintEvent( <a href="qpaintevent.html">QPaintEvent</a> *e )
{
if ( !e-><a href="qpaintevent.html#6177d5">rect</a>().intersects( <a href=#488>cannonRect</a>() ) )
return;
<a href="qrect.html">QRect</a> cr = cannonRect();
<a href="qpixmap.html">QPixmap</a> pix( cr.<a href="qrect.html#517d48">size</a>() );
pix.<a href="qpixmap.html#e584bd">fill</a>( this, cr.<a href="qrect.html#4ff486">topLeft</a>() );
<a href="qpainter.html">QPainter</a> p( &pix );
p.<a href="qpainter.html#38e68f">setBrush</a>( blue );
p.<a href="qpainter.html#0a6aff">setPen</a>( NoPen );
p.<a href="qpainter.html#ba64b6">translate</a>( 0, pix.<a href="qpixmap.html#1d578d">height</a>() - 1 );
p.<a href="qpainter.html#dc4acb">drawPie</a>( <a href="qrect.html">QRect</a>( -35,-35, 70, 70 ), 0, 90*16 );
p.<a href="qpainter.html#4bd0fb">rotate</a>( -ang );
p.<a href="qpainter.html#b29a16">drawRect</a>( <a href="qrect.html">QRect</a>(33, -4, 15, 8) );
p.<a href="qpainter.html#c7f9ac">end</a>();
p.<a href="qpainter.html#59f1bb">begin</a>( this );
p.<a href="qpainter.html#f3fb4a">drawPixmap</a>( cr.<a href="qrect.html#4ff486">topLeft</a>(), pix );
}
<a href="qrect.html">QRect</a> <a name="488"></a>CannonField::cannonRect() const
{
<a href="qrect.html">QRect</a> r( 0, 0, 50, 50 );
r.<a href="qrect.html#eb5839">moveBottomLeft</a>( <a href="qwidget.html#e872e1">rect</a>().bottomLeft() );
return r;
}
<a href="qsizepolicy.html">QSizePolicy</a> <a name="489"></a>CannonField::sizePolicy() const
{
return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
}
</pre>
<p>
<p><address><hr><div align="center">
<table width="100%" cellspacing="0" border="0"><tr>
<td>Copyright 2000 Trolltech<td><a href="http://www.trolltech.com/trademarks.html">Trademarks</a>
<td align="right"><div align="right">Qt version 2.3.1</div>
</table></div></address></body></html>
|