主题 : 出现问题:空间更新引起的页面闪烁 复制链接 | 浏览器收藏 | 打印
用过的Linux发行版:Arch,Gentoo,Debian,Fedora,RHEL,CentOS,Ubuntu,OpenSUSE,RedFlag,Ylmf,De ..
级别: 骑士
UID: 12662
精华: 0
发帖: 181
金钱: 955 两
威望: 191 点
综合积分: 362 分
注册时间: 2010-01-11
最后登录: 2014-02-14
楼主  发表于: 2010-01-17 21:41

 出现问题:空间更新引起的页面闪烁

我的一个绘图程序,用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下绘图时不会出现闪烁。
请问这个问题有什么解决办法?
这个问题对我很紧急 很重要,各位版主 谢谢您了!!!
业余Linux爱好者。
用过的Linux发行版:Arch,Gentoo,Debian,Fedora,RHEL,CentOS,Ubuntu,OpenSUSE,RedFlag,Ylmf,De ..
级别: 骑士
UID: 12662
精华: 0
发帖: 181
金钱: 955 两
威望: 191 点
综合积分: 362 分
注册时间: 2010-01-11
最后登录: 2014-02-14
1楼  发表于: 2010-01-17 21:44
我在编程过程中感觉到Qt2相比Qt3和Qt4 不方便的地方好多呀
友善的工程师们能不能出一个把Qtopia中qte替换成4或3版本的教程呢?

我是初学者,问题太幼稚请见谅啊
业余Linux爱好者。