Exemplo n.º 1
1
QGraphicsItem *addSmiley() {
    QPen thickPen(Qt::black);
    thickPen.setWidth(2);

    // add face
    QGraphicsEllipseItem *face = new QGraphicsEllipseItem(QRect(-50, -50, 100, 100));
    face->setPen(Qt::NoPen);
    face->setBrush(Qt::yellow);

    // add eyes
    QGraphicsEllipseItem *leftEye = new QGraphicsEllipseItem(QRectF(-6, -12, 12, 24), face);
    leftEye->setPen(thickPen);
    leftEye->setBrush(Qt::white);
    leftEye->setPos(-15, -25);

    QGraphicsEllipseItem *rightEye = new QGraphicsEllipseItem(QRectF(-6, -12, 12, 24), face);
    rightEye->setPen(thickPen);
    rightEye->setBrush(Qt::white);
    rightEye->setPos(15, -25);

    // add smile

    QPainterPath smileArc;
    QRect rect(-33, -15, 66, 50);
    smileArc.arcMoveTo(rect, 0);
    smileArc.arcTo(rect, 0, -180);
    QGraphicsPathItem *smile = new QGraphicsPathItem(smileArc, face);
    smile->setPen(thickPen);

    return face;
}
Exemplo n.º 2
0
void StitcherView::drawConstraintFit(geometrically_constrained_system *gc){
  for(int i = 0;i<gc->n_constraints;i++){
    GeometryConstraintType type = gc->constraints[i].type;
    double fit = gc->constraints[i].best_fit;    
    if(type == RadialLineConstraint){
      qreal x1,x2,y1,y2;
      qreal scale = 10000;
      x1 = cos(fit)*scale;

      y1 = sin(fit)*scale;
      x2 = -x1;
      y2 = -y1;
      QGraphicsLineItem * item = new QGraphicsLineItem(x1,y1,x2,y2);
      QPen p = item->pen();
      p.setStyle(Qt::DashLine);
      QVector<qreal> dashes;
      dashes << 25 << 15;
      p.setDashPattern(dashes);
      p.setColor(Qt::white);
      item->setPen(p);
      item->setZValue(10000);
      scene()->addItem(item);
      constraintFit.append(item);
    }else if(type == CircleConstraint){
      double radius = fit;
      QGraphicsEllipseItem * item = new QGraphicsEllipseItem(-radius,-radius,2*radius,2*radius);
      QPen p = item->pen();
      p.setStyle(Qt::DashLine);
      QVector<qreal> dashes;
      dashes << 25 << 15;
      p.setDashPattern(dashes);
      p.setColor(Qt::white);
      item->setPen(p);
      item->setZValue(10000);
      scene()->addItem(item);
      constraintFit.append(item);
    }
    sp_vector ** cp_g = control_point_list_to_global(gc->constraints[i].points,gc->constraints[i].n_points);
    QColor color = QColor::fromHsvF(1.0/3+(double)i/gc->n_constraints,1,1,1);
    for(int j = 0;j<gc->constraints[i].n_points;j++){
      QGraphicsEllipseItem * point = new QGraphicsEllipseItem(-4,-4,8,8);
      point->setZValue(10001);
      point->setPos(sp_vector_get(cp_g[j],0),sp_vector_get(cp_g[j],1));
      point->setPen(QPen(color, 2));
      point->setFlags(point->flags() | QGraphicsItem::ItemIgnoresTransformations);
      scene()->addItem(point);
      constraintFit.append(point);
    }
  }
}
void subObservationVisualiserBase::constructStandardPoints(const observation& subObs)
{
    assert(standardPointsItem);
    std::size_t nVertices = boost::num_vertices(contextObj.getGraph());
    const std::vector<context::vertexPosition>& vertexPositions = contextObj.getVertexPositions();
    const vertexState* state = subObs.getState();

    QPen blackPen(QColor("black"));
    QBrush blackBrush(QColor("black"));

    QPen redPen(QColor("red"));
    QBrush redBrush(QColor("red"));

    QBrush noBrush;
    noBrush.setStyle(Qt::NoBrush);

    for(std::size_t vertexCounter = 0; vertexCounter < nVertices; vertexCounter++)
    {
        context::vertexPosition currentPosition = vertexPositions[vertexCounter];
        float x = currentPosition.first;
        float y = currentPosition.second;
        QGraphicsEllipseItem* newItem = new QGraphicsEllipseItem(x - pointSize/2, y - pointSize/2, pointSize, pointSize, standardPointsItem);
        if(state[vertexCounter].state == FIXED_OFF)
        {
            newItem->setBrush(noBrush);
            newItem->setPen(blackPen);
        }
        else if(state[vertexCounter].state == FIXED_ON)
        {
            newItem->setBrush(blackBrush);
            newItem->setPen(blackPen);
        }
        else if(state[vertexCounter].state == UNFIXED_OFF)
        {
            newItem->setBrush(noBrush);
            newItem->setPen(redPen);
        }
        else if(state[vertexCounter].state == UNFIXED_ON)
        {
            newItem->setBrush(redBrush);
            newItem->setPen(redPen);
        }
        else
        {
            throw std::runtime_error("Internal error");
        }
    }
}
void PSV_CircularIndicatorItem::drawColorPie(int zValue)
{
    double colorCircleRadius = m_colorCircleRadiusRatio * m_outerRadius;
    QPointF topLeftPot(m_rect.center().x()-colorCircleRadius, m_rect.center().y()-colorCircleRadius);
    QPointF bottomRightPot(m_rect.center().x()+colorCircleRadius, m_rect.center().y()+colorCircleRadius);
    QRectF colorCircleRect=QRectF(topLeftPot, bottomRightPot);


    QMapIterator<double,QColor> iter(m_levelInfos);

    int startAngle = 225 * 16;
    double dValue = m_max -m_min;
    if(qAbs(dValue) < PSV_ZEOR)
    {
        dValue = 100;
        m_max = 100;
        m_min = 0;
    }
    int spanAngle = 0;
    int topAngle = 0;
    while(iter.hasNext())
    {
        iter.next();
        spanAngle = (int)(16 * 270 * iter.key()) - topAngle;
        topAngle += spanAngle;
        QGraphicsEllipseItem* item = new QGraphicsEllipseItem(this);
        item->setRect(colorCircleRect);
        item->setStartAngle(startAngle - spanAngle);
        item->setSpanAngle(spanAngle);
        item->setPen(QPen(Qt::NoPen));
        item->setBrush(QBrush(iter.value()));
        item->setZValue(zValue);
        startAngle = startAngle - spanAngle;
    }
}
Exemplo n.º 5
0
void GraphicsBoard::setHighlights(const QList<Chess::Square>& squares)
{
	clearHighlights();
	if (squares.isEmpty())
		return;

	TargetHighlights* targets = new TargetHighlights(this);

	QRectF rect;
	rect.setSize(QSizeF(m_squareSize / 3, m_squareSize / 3));
	rect.moveCenter(QPointF(0, 0));
	QPen pen(Qt::white, m_squareSize / 20);
	QBrush brush(Qt::black);

	for (const auto& sq : squares)
	{
		QGraphicsEllipseItem* dot = new QGraphicsEllipseItem(rect, targets);

		dot->setCacheMode(DeviceCoordinateCache);
		dot->setPen(pen);
		dot->setBrush(brush);
		dot->setPos(squarePos(sq));
	}

	m_highlightAnim = new QPropertyAnimation(targets, "opacity");
	targets->setParent(m_highlightAnim);

	m_highlightAnim->setStartValue(0.0);
	m_highlightAnim->setEndValue(1.0);
	m_highlightAnim->setDuration(500);
	m_highlightAnim->setEasingCurve(QEasingCurve::InOutQuad);
	m_highlightAnim->start(QAbstractAnimation::KeepWhenStopped);
}
Exemplo n.º 6
0
QGraphicsEllipseItem * GalaGV::makeMarkerItem(const QString &cords,const QString& sysid, ItemTyps itemtyp,QColor color, Typs typ)
{
    QStringList cord = cords.split('/');
    qreal x1 = cord.at(0).toFloat();
    //qreal y1 = cord.at(1).toFloat();
    qreal z1 = -1*cord.at(2).toFloat();
    QGraphicsEllipseItem *item = new QGraphicsEllipseItem();
    int size;
    switch(typ){
    case GalaGV::Plani:
        item->setBrush(QBrush(Qt::white));
        size = 2;
        break;
    case GalaGV::Mark:
        size = 6;
        break;
    case GalaGV::BigMarker:
        size = 10;
        break;
    }
    item->setRect(x1-(size/2),z1-(size/2),size,size);
    item->setPen(QPen(color));
    item->setData(ID,sysid);
    item->setData(Cords,cords);
    item->setData(ItemTyp,itemtyp);
    return item;
}
static QGraphicsEllipseItem* createPointItem() {
    QGraphicsEllipseItem* item = new QGraphicsEllipseItem(-pointRadius, -pointRadius, 2.0 * pointRadius, 2.0 * pointRadius);
    item->setBrush(pointBrush);
    item->setPen(pointPen);
    item->setZValue(1);
    return item;
}
QGraphicsItemGroup* SDefaultBrush::renderPath(QPainterPath path){
    QGraphicsItemGroup* pGroup = new QGraphicsItemGroup();

    QPen pen;
    QColor c1 = mColor;
    QColor c2 = mColor;
    int alpha1 = 3*mColor.alpha()/4;
    c1.setAlpha(alpha1);
    int alpha2 = alpha1*mHardness/100;
    c2.setAlpha(alpha2);
    pen.setColor(QColor(Qt::transparent));
    QRadialGradient gradient(500, 500, 500, 500, 500);
    gradient.setColorAt(0, c1);
    gradient.setColorAt(1, c2);
    QBrush brush(gradient);


    for(int i=0; i<path.length(); i+=(mWidth/2)*mSpacing){
        QGraphicsEllipseItem* pEllipse = new QGraphicsEllipseItem();
        pEllipse->setPen(pen);
        pEllipse->setBrush(brush);
        QPointF pt = path.pointAtPercent(path.percentAtLength(i));
        pEllipse->setRect(pt.x()-mWidth/2, pt.y()-mWidth/2, mWidth, mWidth);
        pGroup->addToGroup(pEllipse);
    }

    return pGroup;
}
Exemplo n.º 9
0
void QGraphicsVolumeView::addWorkingSetItem(QGraphicsItem *sliceItem) {
    const static int markerSize = 9;
    QRectF rect = sliceItem->boundingRect();
    QRectF ellipse = QRectF(rect.width() - markerSize - 3, 3, markerSize, markerSize);
    QGraphicsEllipseItem* rectItem = new QGraphicsEllipseItem(ellipse, sliceItem);
    rectItem->setZValue(1);
    rectItem->setPen(QPen(Qt::green, 3));
    rectItem->setData(AnnotationType, QVariant(WorkingSet));
}
Exemplo n.º 10
0
void PSV_CircularIndicatorItem::drawCoverCircle(int zValue)
{
    double coverCircleRadius = m_coverCircleRadiusRatio * m_outerRadius;
    QRectF rect(m_rect.center().x()-coverCircleRadius, m_rect.center().y()-coverCircleRadius, coverCircleRadius*2, coverCircleRadius*2);
    QGraphicsEllipseItem* item = new QGraphicsEllipseItem(rect, this);
    item->setPen(QPen(Qt::NoPen));
    item->setBrush(QBrush(QColor(130, 130, 130)));
    item->setZValue(zValue);
}
void MainWindow::slotAddEllipseItem() 	//在场景中加入一个椭圆形图元
{
    QGraphicsEllipseItem *item = new QGraphicsEllipseItem(QRectF(0,0,80, 60));
    item->setPen(Qt::NoPen);
    item->setBrush(QColor(qrand()%256,qrand()%256,qrand()%256));
    item->setFlag(QGraphicsItem::ItemIsMovable);

    scene->addItem(item);
    item->setPos((qrand()%int(scene->sceneRect().width()))-200,(qrand()%int(scene->sceneRect().height()))-200);
}
Exemplo n.º 12
0
void IdentityItem::updateItem( const Polka::Identity &identity )
{
  m_identity = identity;

  foreach( QGraphicsItem *child, childItems() ) {
    delete child;
  }

  if ( identity.type() == "group" ) {
    int circleSize = m_itemSize + 14;
    QGraphicsEllipseItem *groupCircle = new QGraphicsEllipseItem( this );
    groupCircle->setRect( -circleSize/2, -circleSize/2,
      circleSize, circleSize );
    QPen pen;
    pen.setBrush( Qt::white );
    pen.setWidth( 4 );
    groupCircle->setPen( pen );
  }

  QPixmap pixmap = m_model->pixmap( identity );

  QGraphicsItem *item = new QGraphicsPixmapItem( pixmap, this );
  item->setPos( -pixmap.width() / 2, -pixmap.height() / 2 );

  QGraphicsTextItem *textItem = new QGraphicsTextItem( identity.name().value() );

  int textWidth = textItem->boundingRect().width();
  int textHeight = textItem->boundingRect().height();

  m_nameItem = new RoundedRectItem( this );
  m_nameItem->setRect( 0, 0, textWidth, textHeight );
  m_nameItem->setBrush( QColor( 255,255,230 ) );
  m_nameItem->setZValue( 10 );

  textItem->setParentItem( m_nameItem );

  m_nameItem->setPos( - textWidth / 2, 30 );

  m_fanMenu = new FanMenu( this );
  m_fanMenu->setZValue( 50 );

  FanMenuItem *menuItem = m_fanMenu->addItem( i18n("Remove") );
  connect( menuItem, SIGNAL( clicked() ), SLOT( emitRemoveIdentity() ) );
  m_checkMenuItem = m_fanMenu->addItem( i18n("Check") );
  connect( m_checkMenuItem, SIGNAL( clicked() ), SLOT( checkItem() ) );
  if ( identity.type() == "group" ) {
    menuItem = m_fanMenu->addItem( i18n("Go to") );
  } else {
    menuItem = m_fanMenu->addItem( i18n("Show") );
  }
  connect( menuItem, SIGNAL( clicked() ), SLOT( emitShowIdentity() ) );
  m_fanMenu->setupItems();

  hidePopups();
}
Exemplo n.º 13
0
SEXP qt_qgraphicsEllipseItem(SEXP x, SEXP y, 
			     SEXP width, SEXP height, 
			     SEXP pars)
{
    double 
	px = asReal(x), py = asReal(y),
	pw = asReal(width), ph = asReal(height);
    QGraphicsEllipseItem *item = 
	new QGraphicsEllipseItem(px - pw/2, py - ph/2, pw, ph, 0);
    item->setBrush(asQBrush(pars));
    item->setPen(asQPen(pars));
    return wrapQGraphicsItem(item);
}
Exemplo n.º 14
0
void HostItem::createJobHalo(const Job &job)
{
    QGraphicsEllipseItem *halo = new QGraphicsEllipseItem(
        centerPosX(), centerPosY(), m_baseWidth, m_baseHeight,
        this, scene());

    halo->setZValue(70 - m_jobHalos.size());
    halo->setPen(QPen(Qt::NoPen));
    halo->show();

    m_jobHalos.insert(job, halo);

    updateHalos();
}
Exemplo n.º 15
0
void PSV_CircularIndicatorItem::drawCoverBall(int zValue)
{
    qreal ballRadius=m_outerRadius * m_coverBallRadiusRatio;
    QRadialGradient ballGradient(m_rect.center(), ballRadius, m_rect.center());
    ballGradient.setColorAt(0.0, QColor(140, 140, 140));
    ballGradient.setColorAt(0.7, QColor(140, 140, 140));
    ballGradient.setColorAt(1.0, QColor(60, 60, 60));
    //==================
    QRectF rect(m_rect.center().x()-ballRadius, m_rect.center().y()-ballRadius, ballRadius*2, ballRadius*2);
    QGraphicsEllipseItem* item = new QGraphicsEllipseItem(rect, this);
    item->setPen(QPen(Qt::NoPen));
    item->setBrush(ballGradient);
    item->setZValue(zValue);
}
Exemplo n.º 16
0
void MainWindow::graphicalInit() {
    scene = new QGraphicsScene(-50,-90,95,95);
    ui->graphicsView->setScene(scene);
    ui->graphicsView->setRenderHint(QPainter::Antialiasing);

    scene->setBackgroundBrush(QBrush(QColor(12,20,30)));

    scene->addPixmap(QPixmap("data/img/title.png"))->setPos(-280,-500);

    QGraphicsEllipseItem* lbr = scene->addEllipse(-360,-360,720,720);
    lbr->setPen(QPen(QBrush(QColor(255,255,255)),85));

    QGraphicsEllipseItem* contour = scene->addEllipse(-340,-340,680,680);
    contour->setBrush(QBrush(QColor(230,230,255)));
    contour->setPen(QPen(QBrush(QColor(0,0,0)),5));

    roue_g = new QGraphicsItemGroup(contour);
  //  roue_g->addToGroup(contour);


    for(int i=0;i<playersList.size();i++) {
        float angle = (float)i/(float)playersList.size()*2*3.14159- 3.14159/2;
        QGraphicsLineItem* l = scene->addLine(10*cos(angle),10*sin(angle),340*cos(angle),340*sin(angle),QPen(QColor(i%2 == 0 ? 192: 0,0,0,192)));
        roue_g->addToGroup(l);

        QGraphicsPixmapItem* p = scene->addPixmap(photos[i]);
        p->setScale(0.18f);
        p->setPos(395*cos(angle+0.02),395*sin(angle+0.02));
        p->setRotation(angle/(2*3.14159)*360 + 90+3*360/48/4);

        roue_g->addToGroup(p);

    }



}
Exemplo n.º 17
0
void PSV_CircularIndicatorItem::drawInnerCircle(int zValue)
{
    qreal innerRadius = m_innerRadiusRatio * m_outerRadius;
    QRadialGradient innerGradient(m_rect.center(), innerRadius, m_rect.center());
    innerGradient.setColorAt(0.0, QColor(130, 130, 130));
    innerGradient.setColorAt(0.7, QColor(130, 130, 130));
    innerGradient.setColorAt(1.0, QColor(80, 80, 80));
    //==
    QPen pen(Qt::NoPen);
    QRectF rect(m_rect.center().x()-innerRadius, m_rect.center().y()-innerRadius, innerRadius*2, innerRadius*2);
    QGraphicsEllipseItem* item = new QGraphicsEllipseItem(rect, this);
    item->setPen(pen);
    item->setBrush(innerGradient);
    item->setZValue(zValue);
}
Exemplo n.º 18
0
void HostItem::updateHalos()
{
    int count = 1;

    QMap<Job,QGraphicsEllipseItem*>::Iterator it;
    for(it = m_jobHalos.begin(); it != m_jobHalos.end(); ++it) {
        QGraphicsEllipseItem *halo = it.value();
        halo->setRect(halo->x() - 5 - count * 3,
                      halo->y() - 5 - count * 3,
                      m_baseWidth + count * 6,
                      m_baseHeight + count * 6);
        halo->setBrush(m_hostInfoManager->hostColor(it.key().client()));
        halo->setPen(Qt::NoPen);
        ++count;
    }
}
Exemplo n.º 19
0
void GridLine::setPen (const QPen &pen)
{
  for (int i = 0; i < m_segments.count(); i++) {
    QGraphicsItem *item = m_segments [i];
    if (item != 0) {

      // Downcast since QGraphicsItem does not have a pen
      QGraphicsLineItem *itemLine = dynamic_cast<QGraphicsLineItem*> (item);
      QGraphicsEllipseItem *itemArc = dynamic_cast<QGraphicsEllipseItem*> (item);
      if (itemLine != 0) {
        itemLine->setPen (pen);
      } else if (itemArc != 0) {
        itemArc->setPen (pen);
      }
    }
  }
}
Exemplo n.º 20
0
void Checker::setLineColor (SideSegments &sideSegments,
                            const QPen &pen)
{
  for (int i = 0; i < sideSegments.count(); i++) {
    QGraphicsItem *item = sideSegments [i];
    if (item != 0) {

      // Downcast since QGraphicsItem does not have a pen
      QGraphicsLineItem *itemLine = dynamic_cast<QGraphicsLineItem*> (item);
      QGraphicsEllipseItem *itemArc = dynamic_cast<QGraphicsEllipseItem*> (item);
      if (itemLine != 0) {
        itemLine->setPen (pen);
      } else if (itemArc != 0) {
        itemArc->setPen (pen);
      }
    }
  }
}
Exemplo n.º 21
0
Peg::Peg(const QPoint& hole, Board* board, QGraphicsItem* parent)
: QGraphicsEllipseItem(0, 0, 20, 20, parent),
  m_hole(hole),
  m_board(board) {
	setPen(Qt::NoPen);

	QGraphicsEllipseItem* gloss = new QGraphicsEllipseItem(3, 1.5, 14, 9, this);
	QLinearGradient gradient2(0, 0, 0, 9);
	gradient2.setColorAt(0, QColor(255, 255, 255));
	gradient2.setColorAt(1, QColor(255, 255, 255, 0));
	gloss->setBrush(gradient2);
	gloss->setPen(Qt::NoPen);

	setZValue(2);
	setPos(hole.x() * 20, hole.y() * 20);
	setFlag(QGraphicsItem::ItemIsMovable, true);
	setCursor(Qt::OpenHandCursor);
}
Exemplo n.º 22
0
void fillItemFromEllipse(QGraphicsItemGroup *item, const CLBoundingBox *pBB, const CLEllipse *pEllipse, const CLGroup *group, const CLRenderResolver* resolver)
{
  double x = pBB->getPosition().getX() + pEllipse->getCX().getAbsoluteValue() + pEllipse->getCX().getRelativeValue() / 100.0 * pBB->getDimensions().getWidth();
  double y = pBB->getPosition().getY() + pEllipse->getCY().getAbsoluteValue() + pEllipse->getCY().getRelativeValue() / 100.0 * pBB->getDimensions().getHeight();
  double rx = pEllipse->getRX().getAbsoluteValue() + pEllipse->getRX().getRelativeValue() / 100.0 * pBB->getDimensions().getWidth();
  double ry = pEllipse->getRY().getAbsoluteValue() + pEllipse->getRY().getRelativeValue() / 100.0 * pBB->getDimensions().getHeight();

  QGraphicsEllipseItem* ellipseItem = new QGraphicsEllipseItem(
    x - rx, y - ry, rx * 2, ry * 2);
  QPen *pen = getPen(pEllipse, group, resolver, pBB);
  ellipseItem->setPen(*pen);
  delete pen;
  QBrush *brush = getBrush(pEllipse, group, resolver, pBB);
  ellipseItem->setBrush(*brush);
  delete brush;
  transform(ellipseItem, pEllipse, group);
  item->addToGroup(ellipseItem);
}
Exemplo n.º 23
0
void TodoHandleItem::updateItem( const Bliss::Todo &todo )
{
  m_todo = todo;

  foreach( QGraphicsItem *child, childItems() ) {
    delete child;
  }

  if ( todo.type() == "group" ) {
    int circleSize = m_itemSize + 14;
    QGraphicsEllipseItem *groupCircle = new QGraphicsEllipseItem( this );
    groupCircle->setRect( -circleSize/2, -circleSize/2,
      circleSize, circleSize );
    QPen pen;
    pen.setBrush( Qt::white );
    pen.setWidth( 4 );
    groupCircle->setPen( pen );
  }
}
Exemplo n.º 24
0
void Scene::mouseReleaseEvent(QGraphicsSceneMouseEvent *sEvent)
{
	if (isActive())
	{
		if (isEllipse() && isEllipsePainting() && startPoint != endPoint)
			if (sEvent->button() == Qt::LeftButton)
			{
				QGraphicsEllipseItem *finishedEllipseItem = new QGraphicsEllipseItem(ellipseItem->rect());
				setEllipsePainting(false); 
				finishedEllipseItem->setPen(QPen(QColor(0, 0, 200), 4));
				finishedEllipseItem->setBrush(QBrush(QColor(0, 0, 200, 50)));
				finishedEllipseItem->setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable);
				removeItem(ellipseItem);
				addItem(finishedEllipseItem);
				ellipseVector << finishedEllipseItem;
			}

		QGraphicsScene::mouseReleaseEvent(sEvent);
	}
}
Exemplo n.º 25
0
void PSV_CircularIndicatorItem::drawOuterCircle(int zValue)
{
    QRadialGradient outerGradient(m_rect.center(), m_outerRadius, m_rect.center());
    outerGradient.setColorAt(0.0, QColor(200, 200, 200));
    outerGradient.setColorAt(0.9, QColor(80, 80, 80));
    outerGradient.setColorAt(0.95, QColor(180, 180, 180));
    outerGradient.setColorAt(1.0, QColor(80, 80, 80));
    //==========================
    QPen pen(Qt::NoPen);
    QGraphicsEllipseItem* item = new QGraphicsEllipseItem(this);
    item->setRect(m_rect.center().x() - m_outerRadius, m_rect.center().y() - m_outerRadius, m_outerRadius*2, m_outerRadius*2);
    item->setPen(pen);
    item->setBrush(outerGradient);
    item->setZValue(zValue);
    {//TEST

        QGraphicsRectItem *item = new QGraphicsRectItem(m_rect, this);
        item->setPen(QPen(Qt::blue));
        //        item->setPen();
    }
}
Exemplo n.º 26
0
MyScene::MyScene(qreal x,qreal y,qreal width,qreal height,QObject *parent):QGraphicsScene(x,y,width,height,parent) {
	// 預計加一個圓形,然後,執徑逐漸變大
	QGraphicsEllipseItem *ball = new QGraphicsEllipseItem(-15,-15,30,30);
	ball->setPen(QPen(QColor(125,125,125,125),3));
	addItem(ball);

	ball->setPos(this->width()/2,this->height()/2);	// setPos(x,y):設定此小座標的原點在此(x,y)

	timeLine = new QTimeLine;

	QGraphicsItemAnimation *headAnimation = new QGraphicsItemAnimation;
	headAnimation->setItem(ball);
	headAnimation->setTimeLine(timeLine);
	headAnimation->setScaleAt(1,10,10);

	timeLine->setUpdateInterval(1000 / 25);
	timeLine->setCurveShape(QTimeLine::SineCurve);
	timeLine->setLoopCount(0);
	timeLine->setDuration(2000);
	timeLine->start();
}
Exemplo n.º 27
0
/*protected*/ void DrawCircle::makeFigure() {
    ControlPanelEditor* ed = _parent->getEditor();
    QRectF r = ed->getSelectRect();
    if (!r.isValid()) {
        return;
    }
    _radius = qMax(r.width(), r.height());
    QGraphicsEllipseItem* rr = new QGraphicsEllipseItem(0, 0, _radius, _radius);
    rr->setBrush(QBrush(_fillColor));
    rr->setPen(QPen(QBrush(_lineColor),_lineWidth));
    PositionableCircle* ps = new PositionableCircle(ed, rr);
    ps->_itemGroup = new MyGraphicsItemGroup();
    ps->_itemGroup->setName("PositionableCircle");

    ps->_itemGroup->addToGroup(rr);
    ps->setLocation(r.x(), r.y());
//    ps->setHeight(_height);
//    ps->setWidth(_width);
    ps->setDisplayLevel(ControlPanelEditor::MARKERS);
    setDisplayParams(ps);
    ps->updateSize();
    ed->putItem(ps);
    DrawFrame::closingEvent(true);
}
Exemplo n.º 28
0
void MyQGraphicsView::mousePressEvent(QMouseEvent * e)
{
    qreal rad = 1;
    QPointF pt = mapToScene(e->pos());
    //QPointF pt = (e->pos());
    qDebug()<<pt.x();
    qDebug()<<pt.y();
    if(pt.y()>=650)
        return;
    listofpoints.append(pt);
    qDebug()<<listofpoints.size();

    //    path.lineTo(pt.x(),pt.y());
    //  qDebug()<<"element count"<<path.elementCount();

    qDebug()<<"element count"<<listofpoints.size();

    QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem(pt.x()-rad, pt.y()-rad, rad*3.0, rad*3.0);

    ellipse->setPen(QPen());
    ellipse->setBrush(QBrush(Qt::SolidPattern));

    scene->addItem(ellipse);
}
Exemplo n.º 29
0
void GameWidget::setController(GameController *gc)
{
    _gameController = gc;

    QBrush brush(QColor("red"));
    QPen pen(brush, 2);
    QPen pacmanPen(QBrush(QColor("yellow")), 2);
    QPen ghostPen(QBrush(QColor("cyan")), 2);

    // creation de la map
    unsigned int vertexNumber = _gameController->getVertexNumber();
    for(unsigned int i = 0; i < vertexNumber; ++i)
    {
        QGraphicsEllipseItem * ell = new QGraphicsEllipseItem( -GameWidget::RADIUS,
                                                               -GameWidget::RADIUS,
                                                               GameWidget::RADIUS * 2,
                                                               GameWidget::RADIUS * 2 );
        ell->setPen( pen );
        ell->setZValue(1);

        _vertex.push_back( ell );
        _scene->addItem( _vertex.back() );
    }

    positionVertex(_vertex.begin(), _vertex.end());

    linkVertex(_scene, _vertex);

    // creation du pacman et des ghosts
    _pacman = new QGraphicsEllipseItem( -GameWidget::RADIUS + GameWidget::THICK * 2,
                                        -GameWidget::RADIUS + GameWidget::THICK * 2,
                                        GameWidget::RADIUS * 2 - GameWidget::THICK * 4,
                                        GameWidget::RADIUS * 2 - GameWidget::THICK * 4
                                        );
    _pacman->setPen(pacmanPen);
    _scene->addItem(_pacman);
    this->updatePacman();

    std::vector<unsigned int> ghostsPos = _gameController->getGhost();
    unsigned int ghostNumber = ghostsPos.size();
    for( unsigned int i = 0; i < ghostNumber; ++i )
    {
        QGraphicsEllipseItem * ghost = new QGraphicsEllipseItem( -GameWidget::RADIUS + GameWidget::THICK,
                                                                 -GameWidget::RADIUS + GameWidget::THICK,
                                                                 GameWidget::RADIUS * 2 - GameWidget::THICK * 2,
                                                                 GameWidget::RADIUS * 2 - GameWidget::THICK * 2
                                                                 );
        ghost->setPen(ghostPen);
        _scene->addItem(ghost);
        _ghosts.push_back(ghost);
    }
    this->updateGhost();

    QObject::connect(_btnNextMove, SIGNAL(clicked()), this, SLOT(nextMove()));


    _gameController->setPacmanAI(_option.getPacmanAI());
    //_gameController->benchmark(1000);
    //_gameController->reset();

    _view->setFocus();
}
Exemplo n.º 30
0
bool ZipplXmlReader::read( QIODevice *dev )
{
  setDevice( dev );
  bool res = true;
  bool metaMode = false;
  mCurrParent = 0;
  mCurrSpot = 0;

  QGraphicsScene *scene = mGraphWidget->scene();
  int spotID = 0;

  while (!atEnd()) {
    readNext();

    if( isStartElement() ) {
      qDebug() << "XML name: " << name();

      if( name() == "presentation") {
        // presentation mode: debug & presentation
        QString mode = attributes().value("mode").toString();
        if( !mode.isEmpty() ) mMode = mode;

        mPath = attributes().value("path").toString();
        if( !mPath.endsWith('/') ) mPath += "/";


        qreal dx = qrealAttrib("width") / -2.0;
        qreal dy = qrealAttrib("height") / -2.0;
        QRectF rect( dx, dy, -2.0*dx, -2.0*dy );
        scene->setSceneRect( rect );
      } else if( name() == "meta" ) {
        metaMode = true;
      } else if( name() == "title" && metaMode ) {
        mPresentationTitle = readElementText();
      } else if( name() == "description" && metaMode ) {
        mPresentationDescr = readElementText();
      } else if( name() == "date" && metaMode ) {
        mPresentationDate = readElementText();
      } else if( name() == "name" && metaMode ) {
        mAuthorName = readElementText();
      } else if( name() == "email" && metaMode ) {
        mAuthorEmail = readElementText();
      } else if( name() == "tocentry" ) {
        if( mCurrSpot ) {
          mCurrSpot->setData( TOCENTRY, readElementText() );
        }
      } else if( name() == "spot" ) {
        if( mCurrParent != 0 ) {
          qDebug() << "Strange: Current Parent should be zero here!";
        }
        QGraphicsRectItem *rectItem = new QGraphicsRectItem( );

        rectItem->setPen( pen( rectItem->pen(), QColor("#aeaeae") ));

        mCurrParent = rectItem;
        mCurrSpot = rectItem;
        mCurrParent->setData( ID, QVariant( spotID++ ));

        mCurrParent->setPos( position() );

        rectItem->setBrush( brush( rectItem->brush() ) );

        scene->addItem( mCurrParent );
        mSpots.append( mCurrParent );

        // Prepare the hidden items list
        GraphicsItemList list;
        mHiddenItems.insert( mCurrParent, list );

      } else if( name() == "hidden" ) {
        QGraphicsRectItem *rectItem = new QGraphicsRectItem( mCurrParent, scene );
        rectItem->setPen( QPen( QColor( 240, 240, 240 )));

        // append this hidden item to the list of hiddens of the parent spot.
        GraphicsItemList list = mHiddenItems[mCurrSpot];
        list.append( rectItem );
        mHiddenItems[mCurrSpot] = list;

        mCurrParent = rectItem;
        mCurrParent->setData( ID, QVariant( spotID++ ));

      } else if( name() == "rect" ) {
        if( mCurrParent ) { // within a spot
          qDebug() << "Creating a rectangle!";
          QGraphicsRectItem *rectItem = new QGraphicsRectItem( mCurrParent, scene );

          qreal width = qrealAttrib( "width" );
          qreal height = qrealAttrib( "height" );

          QPointF pos = position();
          if( width > 0 && height > 0 ) {
            rectItem->setRect( pos.x(), pos.y(), width, height );
          } else {
            rectItem->setPos( pos );
          }
          rectItem->setPen( pen( rectItem->pen() ) );

          mCurrParent = rectItem;
        }
      } else if( name() == "circle" ) {
        QPointF pos = position();
        QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem( mCurrParent, scene );
        // ellipse->setBrush( getBrush() );
        qreal r = 2.0 * qrealAttrib( "r" );

        QRectF rect( pos, QSizeF( r, r ) );

        ellipse->setPen( pen( ellipse->pen() ) );

        ellipse->setRect( rect );


      } else if( name() == "text" ) {
        QGraphicsSimpleTextItem *textItem = new QGraphicsSimpleTextItem( mCurrParent, scene );

        QString font = attributes().value("font").toString();
        QString size = attributes().value("size").toString();


        QFont currFont = textItem->font();
        if( !font.isEmpty() ) {
          currFont.setFamily( font );
          textItem->setFont( currFont );
        }
        if( !size.isEmpty() ) {
          currFont.setPointSize( size.toInt() );
          textItem->setFont( currFont );
        }

        textItem->setPos( position() );

        // set the brush
        QBrush b( textItem->brush() );
        b.setColor( color() );

        textItem->setBrush( b );

        QString text = readElementText();
        textItem->setText( text );

      } else if( name() == "image" ) {
        if( handleImg( scene ) ) {

        }
      }
    } else if( isEndElement() ) {
      qDebug( ) << "XML CLOSE: " << name().toString();
      if( name() == "spot" || name() == "toc" ) {
        QRectF rect = mCurrParent->childrenBoundingRect();
        rect.setX(0);
        rect.setY(0);
        qgraphicsitem_cast<QGraphicsRectItem*>(mCurrParent)->setRect( rect);
        mCurrParent = 0;
      } else if( name() == "rect" ) {
        QGraphicsRectItem *item = qgraphicsitem_cast<QGraphicsRectItem*>(mCurrParent);

        if( item->rect().isEmpty() )
          item->setRect( mCurrParent->childrenBoundingRect() );
        mCurrParent = mCurrParent->parentItem();
      } else if( name() == "hidden") {
        mCurrParent->setOpacity( 0.0 );
        mCurrParent = mCurrParent->parentItem();
      } else if( name() == "meta" ) {
        metaMode = false;
      }
    }
  }

  createToc( scene );

  return res;
}