• 7204阅读
  • 5回复

请问一下,我在linux下用QT3写的一个界面的显示,出现闪屏的问题 [复制链接]

上一主题 下一主题
离线左岸右转
 
只看楼主 倒序阅读 楼主  发表于: 2006-04-10
我在linux下用QT3写的一个界面的显示,在LCD上显示时出现严重的闪屏现象,因为数据和图形要实时更新,现在想不出什么好的办法来解决,因为我也是初次接触QT。有同学跟我说用什么双缓冲可能可以,但是我还不太明白要用到哪些函数,,请高手指点一下,或可以提供些相关的资料,谢谢了
离线windytwang

只看该作者 1楼 发表于: 2006-04-10
双缓冲并不需要什么特别的函数,原理就是把图画好后再放在屏幕上显示.
离线左岸右转
只看该作者 2楼 发表于: 2006-04-11
我刚学QT,好像要画在位图上,要怎么画了,可以给些提示吗
离线jollygrass

只看该作者 3楼 发表于: 2006-04-19
void QProgressBar::drawContents( QPainter *p )
{
  const QRect bar = contentsRect();

  QPixmap pm( bar.size() );
  QPainter paint( &pm );
  const QPixmap * bgPixmap = backgroundPixmap();
  QBrush fbrush = ( bgPixmap ? QBrush( backgroundColor(), *bgPixmap ) :
            QBrush( backgroundColor() ) );
  if ( bgPixmap && !isTopLevel() && (backgroundOrigin() != WidgetOrigin) )
   paint.setBrushOrigin( -x(), -y() );
  paint.fillRect( bar, fbrush );
  paint.setFont( p->font() );

  QStyle::SFlags flags = QStyle::Style_Default;
  if (isEnabled())
   flags |= QStyle::Style_Enabled;
  if (hasFocus())
   flags |= QStyle::Style_HasFocus;

  style().drawControl(QStyle::CE_ProgressBarGroove, &paint, this,
           QStyle::visualRect(style().subRect(QStyle::SR_ProgressBarGroove, this), this ),
           colorGroup(), flags);

  style().drawControl(QStyle::CE_ProgressBarContents, &paint, this,
           QStyle::visualRect(style().subRect(QStyle::SR_ProgressBarContents, this), this ),
           colorGroup(), flags);

  if (percentageVisible())
   style().drawControl(QStyle::CE_ProgressBarLabel, &paint, this,
              QStyle::visualRect(style().subRect(QStyle::SR_ProgressBarLabel, this), this ),
              colorGroup(), flags);
  paint.end();

  p->drawPixmap( bar.x(), bar.y(), pm );
}
离线backup
只看该作者 4楼 发表于: 2008-12-29
thanks you,学习!
离线wd007

只看该作者 5楼 发表于: 2008-12-29
没有遇到这样的问题,试试
欢迎访问我的博客,一起学习提高
http://blog.csdn.net/qter_wd007
快速回复
限100 字节
 
上一个 下一个