Ich kann keinen geeigneten Weg finden, eine glatte geneigte Linie zu zeichnen, ohne dass sie in Qt mit dem Objekt QPainterPath
überpixeliert wird.Eine geneigte Linie glätten
Beachten Sie, dass ich weiß, dass es keinen Sinn macht, den Pfad in der paintEvent
Funktion zu zeichnen, ich habe es aus Gründen der Einfachheit dort. Ich versuche, die Linie direkt im zentralen Widget zu zeichnen.
Jenseits ist ein Ausschnitt aus meinem Code:
void MyObject::paintEvent(QPaintEvent *)
{
QPainterPath aPath;
aPath.moveTo(40.0, 60.0); //random values to try
aPath.lineTo(254, 354.0);
QPainter painter(this);
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine));
painter.drawPath(aPath);
}
Und hier ist das Ergebnis, das ich bekommen:
Es ist schrecklich! Die einzigen schönen Linien, die ich zeichnen kann, sind horizontale, vertikale oder 45 ° geneigte ...
suchen Sie besser die relevanten Teile direkt in der Frage enthalten. Links können jederzeit brechen – user463035818
Ich habe einen bestimmten Code als Beispiel hinzugefügt, aber die Qt-Dokumentation der ersten Partei geht viel detaillierter als ich hier vernünftig schreiben kann – csunday95
Der QPainter :: Antialiasing-Hinweis hat den Trick gemacht. Danke, das Ergebnis sieht jetzt genau so aus, wie ich es wollte. – Getter