QGraphicsItem Cosmetic QPen während paint()

Alles rund um die Programmierung mit Qt
Antworten
delegug
Beiträge: 11
Registriert: 29. Juni 2010 13:43

QGraphicsItem Cosmetic QPen während paint()

Beitrag von delegug »

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);
}
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Re: QGraphicsItem Cosmetic QPen während paint()

Beitrag von Uwe »

Code: Alles auswählen

painter->setPen( pen );
painter->drawPolyline(polyData);
Uwe
delegug
Beiträge: 11
Registriert: 29. Juni 2010 13:43

Re: QGraphicsItem Cosmetic QPen während paint()

Beitrag von delegug »

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...
Antworten