Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by klok ( 15 years ago )
#include "field.h"

field::field(QWidget *parent) :
    QWidget(parent)
{
    stage = 0;
    setFixedSize (800,600);
}

void field::mousePressEvent (QMouseEvent *event)
{
    if (stage == 0)
    {
 if ( event->button() == Qt::LeftButton )
 {
     for (int i=0; i<objects.size (); i++)
     {
  if ((objects[i]-event->posF ()).manhattanLength () < 45)
  {
      fixed = true;
      numFixed = i;
      return;
  }
     }
     objects.append (event->posF ());
     update();
 }
 if ( event->button() == Qt::RightButton )
 {
     for (int i=0; i<objects.size (); i++)
     {
  if ((objects[i]-event->posF ()).manhattanLength () < 43)
  {
      objects.remove (i);
      update();
      return;
  }
     }
 }
    }
    else if (stage == 1)
    {

    }
    else if (stage == 2)
    {

    }
    else
    {

    }
}

void field::mouseReleaseEvent (QMouseEvent *event)
{
    if ( event->button() == Qt::LeftButton )
    {
 fixed = false;
    }
}

void field::mouseMoveEvent (QMouseEvent *event)
{
    if ( fixed == true )
    {

 for (int i=0; i<objects.size (); i++)
 {
     if ((objects[i]-event->posF ()).manhattanLength () < 50)
     {
  return;
     }
 }
 QPointF *newPoint = objects.data();
 newPoint[numFixed]=event->posF ();
 update();
    }
}

void field::paintEvent (QPaintEvent*)
{
    QPainter painter( this );
    painter.setPen( QPen( Qt::black, 3 ) );

    for (int i=0; i<objects.size (); i++)
    {
 painter.drawEllipse (objects[i],15,15);
    }
}

 

Revise this Paste

Your Name: Code Language: