• 4977阅读
  • 5回复

请教如何擦除原图形,只保留新图形?(已解决) [复制链接]

上一主题 下一主题
离线gavinyan
 
只看楼主 倒序阅读 楼主  发表于: 2007-08-24
— 本帖被 XChinux 执行加亮操作(2007-08-25) —
我想在一个frame中画一个波形,然后过20秒后重新画波形,现在可以画波形,但新波形和原波形同时存在,我只想保留新波形,请问如何实现?用到什么函数?请高手指点!
我的程序如下:
void readfileWindow :: paintEvent( QPaintEvent * )
{
frame1->erase( 0, 0, 250, 200 );
QPainter painter4( frame1 );
QPoint beginPoint3;
QPoint endPoint3;
painter4.setPen( QPen( yellow, 1, SolidLine ) );

for ( int i = 0; i <200-1; i++)
{
beginPoint3.setX( 3 * i );
beginPoint3.setY( buffer[2*i] + 10 );
endPoint3.setX( 3 * i + 1 );
endPoint3.setY( buffer[2*i+1] + 10 );
painter4.drawLine( beginPoint3, endPoint3 );
}


for ( int i = 0; i <200-1; i++)
{
beginPoint3.setX(2* i );
beginPoint3.setY( buffer + 10 );
endPoint3.setX( 2*i + 1 );
endPoint3.setY( buffer[i+1] + 10 );
painter4.drawLine( beginPoint3, endPoint3 );
}

}
[ 此贴被XChinux在2007-08-25 09:56重新编辑 ]
离线gavinyan
只看该作者 1楼 发表于: 2007-08-24
请高手指点一下,谢谢
离线睡眠抱
只看该作者 2楼 发表于: 2007-08-25
可以使用双缓冲 先将波形画到QPixmap上 在复bitBlt到QFrame上 这样每次都可以先擦除QPixmap上旧的波形 再画新波形了
离线gavinyan
只看该作者 3楼 发表于: 2007-08-25
非常感谢2楼的回复!楼上说的是实时显示波形的方法吧?
离线gavinyan
只看该作者 4楼 发表于: 2007-08-25
我是用信号和槽机制控制延迟大小,并且实现画相应波形,每次只显示一个波形。
离线snow_man_0

只看该作者 5楼 发表于: 2007-08-25
用背景色把原来曲线画一遍,再用画一遍现在的曲线
快速回复
限100 字节
 
上一个 下一个