|  | Home · All Namespaces · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# cannonfield.cpp Example File
tutorials/tutorial/t9/cannonfield.cpp

     /****************************************************************************
     **
     ** Copyright (C) 2005-$THISYEAR$ $TROLLTECH$. All rights reserved.
     **
     ** This file is part of the $MODULE$ of the Qt Toolkit.
     **
     ** $TROLLTECH_DUAL_LICENSE$
     **
     ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
     ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
     **
     ****************************************************************************/

     #include <QPainter>

     #include "cannonfield.h"

     CannonField::CannonField(QWidget *parent)
         : QWidget(parent)
     {
         currentAngle = 45;
         setPalette(QPalette(QColor(250, 250, 200)));
         setAutoFillBackground(true);
     }

     void CannonField::setAngle(int angle)
     {
         if (angle < 5)
             angle = 5;
         if (angle > 70)
             angle = 70;
         if (currentAngle == angle)
             return;
         currentAngle = angle;
         update();
         emit angleChanged(currentAngle);
     }

     void CannonField::paintEvent(QPaintEvent * /* event */)
     {
         QPainter painter(this);

         painter.setPen(Qt::NoPen);
         painter.setBrush(Qt::blue);

         painter.translate(0, rect().height());
         painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16);
         painter.rotate(-currentAngle);
         painter.drawRect(QRect(30, -5, 20, 10));
     }