Seite 1 von 1

Z-Ebene bei QGraphicsItem

Verfasst: 10. Juni 2012 20:44
von slash-ex
Ich habe ein QGraphicsItem überladen. Nun würde ich den Text allerdings eine Z-Ebene höher zeichnen als den Rest. Ist das möglich?

Code: Alles auswählen

    float   fTextBoxHeight = 24.f;
    QRectF  boundingEdge(m_BoundingRect.x(), m_BoundingRect.y(), m_BoundingRect.width(), m_BoundingRect.height()+fTextBoxHeight);
    QRectF  textRect    (m_BoundingRect.x(), m_BoundingRect.y()+m_BoundingRect.height(), m_BoundingRect.width(), fTextBoxHeight);

    QLinearGradient linearGrad(QPointF(0, m_BoundingRect.y()), QPointF(0, m_BoundingRect.y()+m_BoundingRect.height()/2));
    linearGrad.setSpread(QGradient::ReflectSpread);
    linearGrad.setColorAt(0, Qt::darkGray);
    linearGrad.setColorAt(1, Qt::lightGray);

    painter->setPen(QPen(Qt::black, 0));
    painter->setBrush(Qt::NoBrush);
    painter->drawRect(boundingEdge);

    painter->setPen(Qt::NoPen);
    painter->setBrush(Qt::lightGray);
    painter->drawRect(textRect);

    painter->setPen(Qt::NoPen);
    painter->setBrush(linearGrad);
    painter->drawRect(m_BoundingRect);

    QFont font; font.setPixelSize(18);
    painter->setPen(QPen(Qt::black, 0));
    painter->setFont(font);

    painter->drawText(textRect, Qt::AlignCenter, m_sName);

Re: Z-Ebene bei QGraphicsItem

Verfasst: 11. Juni 2012 17:45
von slash-ex
Ich machs jetzt auf die Art und Weise, die ich eigentlich vermeiden wollte:
Ich habe mir ein Label-GraphicsItem gemacht. mein anderes Item hat nen pointer auf das Label und aktualisiert gegebenenfalls seine position.
Die Z-Ebene von dem Item ist dann eine andere, sieht allerdings immernoch wie ein Item aus. Mit dem Vorteil, dass andere Items wie gewünscht von dem Label überzeichnet werden können.