
Man malt in ein Widget 2 Werte in Form einer Linie die von einem paintEvent() aufgerufen werden. Das Problem daran ist das ich beim naechsten paintEvent das komplette Bild ueberschreibe. Wie behalte ich die alten Werte im Widget und male die neuen drueber ?
Code: Alles auswählen
void Oszi::paintEvent(QPaintEvent * event )
{
//////////////Initial Bild macher
if (this->zeigFenster==true)
{
QPainter background(this);
background.setRenderHint(QPainter::Antialiasing,true);
background.setPen(QPen(Qt::blue, 1, Qt::DashDotLine, Qt::RoundCap));
background.drawLine(0,this->size().height()/2,this->size().width(),this->size().height()/2);
background.drawText(10,10,(this->text));
// Malt das Bild aus dem der eraser spaeter das Bild holen soll um zu loeschen
this->zeigFenster = false;
}
//////////////Loescher soll Bild einsetzen um das alte sauber zu ueberschreiben
QPainter eraser(this);
eraser.setPen(QPen(Qt::cyan, 1, Qt::DashDotLine, Qt::RoundCap));
eraser.drawRect(this->index,10,10,this->size().height());
this->index++;
if (this->index>this->size().width())
{
this->index = 0;
}
//////////////Hier werden die Punkte gemalt
QPainter Werte(this);
Werte.setPen(Qt::green);
QPoint neu(index,this->neuer_wert);
Werte.drawLine(this->alter_wert,neu);
this->alter_wert = neu;Wie kann ich das verhindern, ohne das ich alle Werte neu malen muss ?
Ich steh so was von auf dem Schlauch
