我的一个绘图程序,用QPixMap类的对象buffer实现双缓冲,在Qtopia下代码段:
void Canvas::mousePressEvent( QMouseEvent *e )
{
startPos = e->pos();
}
void Canvas::mouseMoveEvent( QMouseEvent *e )
{
QPainter *painter = new QPainter(&buffer);
painter->setPen(pen);
painter->drawLine(startPos,e->pos());
startPos = e->pos();
update();
}
void Canvas::paintEvent( QPaintEvent *e )
{
QPainter painter(this);
painter.drawPixmap(QPoint(0,0),buffer);
}
void Canvas::resizeEvent(QResizeEvent * event)
{
QPixmap *newPix = new QPixmap(size());
newPix->fill(Qt::white);
QPainter p(newPix);
p.drawPixmap(QPoint(0,0), buffer);
buffer = *newPix;
QWidget::resizeEvent(event);
}
当我绘图时会出现闪烁。
我看到Qtopia的Qt使用的是qt2的版本,而相同的代码在Qt3下绘图时不会出现闪烁。
请问这个问题有什么解决办法?
这个问题对我很紧急 很重要,各位版主 谢谢您了!!!