Guten Tag,
ich habe ein eigenes von QGraphicsItem abgeleitetes Element, das ein Polygon mit dem painter in paint() zeichnet (nur die äußere Linie).
Jetzt ist mein Problem, das nach dem Einbinden in den View, das Polygon skaliert wird und dadurch die Linie sehr dick wird. Dies möchte ich verhindern und immer mit der gleichen Liniengröße arbeiten.
Wenn ich einen QPen mit cosmetic=true in der Funktion paint() erzeuge, funktioniert es nicht. Wie kann ich die Liniendicke beeinflussen bzw. immer gleich lassen?
void formLineItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget*)
{
Q_UNUSED(option);
painter->setRenderHints(QPainter::Antialiasing);
QBrush brush;
brush.setColor(Qt::blue);
QPen pen;
pen.setColor(Qt::blue);
pen.setWidth(1);
pen.setCosmetic(true);
//Liniestärke immer gleich groß, egal welche Zoomstärke->GEHT NICHT
painter->drawPolyline(polyData);
}
QGraphicsItem Cosmetic QPen während paint()
Re: QGraphicsItem Cosmetic QPen während paint()
Code: Alles auswählen
painter->setPen( pen );
painter->drawPolyline(polyData);Re: QGraphicsItem Cosmetic QPen während paint()
Sorry,
hab den Beispielcode selbst kurz hier reingeschrieben und deshalb das painter->setPen(pen) vergessen.
Es ist trotzdem dann nicht "cosmetic" und die Linienstärke ändert sich bei der Skalierung...
Trotzdem schonmal danke...
hab den Beispielcode selbst kurz hier reingeschrieben und deshalb das painter->setPen(pen) vergessen.
Es ist trotzdem dann nicht "cosmetic" und die Linienstärke ändert sich bei der Skalierung...
Trotzdem schonmal danke...