Effizienteres Malen mit QPainter
Verfasst: 30. Januar 2013 17:36
Hallo, ich habe mir ein kleines Programm geschrieben um einfach den Verlauf meines Cursors nachzuzeichnen.
Allerdings glaube ich das alles andere als sehr effektiv bzw ressourcen schonend ist.
Und ich hab nur eine Ahnung wie ich es verbessern könnte,
ich hab es auch schon tot gegoogled leider sagt dort auch jeder was anderes.
Hier mein bisheriger Code:
Also momentan Updatet er ja quasi nach jedem Punkt bzw nach jedem durchlaufen des Events die komplette Zeichnung.
Ideen:
1)Ich habe daran gedacht evtl event neu zu implementieren und einen Ereignisfilter einzufügen der nur nach dem Loslassen der Taste einmal das Widget updatet.
2)Ich habe durch Google + ein bisschen Dokumentation lesen erfahren, das ich auch auf ein Labelzeichnen kann, mir diese "Zeichnung" als Pixmap speichern und dann die Pixmap + die neuen Punkte zeichnen kann, allerdings weis ich nicht inwiefern dies effizient ist oder nicht.
Ich hoffe das ihr mir sagen könnt welche der beiden Versionen die effizientere ist oder mir am besten eine noch besseren Denkanstoß geben auf den ich nicht gekommen bin bisher.
Danke
Mfg omegano
Allerdings glaube ich das alles andere als sehr effektiv bzw ressourcen schonend ist.
Und ich hab nur eine Ahnung wie ich es verbessern könnte,
ich hab es auch schon tot gegoogled leider sagt dort auch jeder was anderes.
Hier mein bisheriger Code:
Code: Alles auswählen
void Widget::mouseMoveEvent(QMouseEvent *e)
{
punkte.append( e->pos() );
qDebug() << punkte;
update();
}
void Widget::paintEvent(QPaintEvent *e)
{
QPainter p(this);
QPen myPen;
myPen.setColor( QColor(255,0,0) );
p.setPen(myPen);
foreach(QPoint poi,punkte){
p.drawPoint(poi);
}
p.end();
}Ideen:
1)Ich habe daran gedacht evtl event neu zu implementieren und einen Ereignisfilter einzufügen der nur nach dem Loslassen der Taste einmal das Widget updatet.
2)Ich habe durch Google + ein bisschen Dokumentation lesen erfahren, das ich auch auf ein Labelzeichnen kann, mir diese "Zeichnung" als Pixmap speichern und dann die Pixmap + die neuen Punkte zeichnen kann, allerdings weis ich nicht inwiefern dies effizient ist oder nicht.
Ich hoffe das ihr mir sagen könnt welche der beiden Versionen die effizientere ist oder mir am besten eine noch besseren Denkanstoß geben auf den ich nicht gekommen bin bisher.
Danke
Mfg omegano