- 
UID:811 
 
- 
- 注册时间2005-09-23
 
- 最后登录2006-03-15
 
- 在线时间0小时
 
 
 
- 
- 发帖31
 
- 搜Ta的帖子
 
- 精华0
 
- 金钱210
 - 威望64
 - 贡献值10
 - 好评度10
 
 
 
- 
访问TA的空间加好友用道具
 
 
 
 
 
 
  
 
 | 
 
 
  我在windows xp下用qt4写的以下代码是工作正常的 - void QzBoard::paintEvent(QPaintEvent* event)
 - {
 -        QPainter painter(this);
 -        //grid
 -        for(int i=0;i<ITEMNUMX;i++)
 -        {
 -               for(int j=0;j<ITEMNUMY;j++)
 -               {
 -                      if((i+j)%2)
 -                      {
 -                             painter.drawPixmap(i*ITEMWIDTH,j*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_tileOdd);
 -                      }
 -                      else
 -                      {
 -                             painter.drawPixmap(i*ITEMWIDTH,j*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_tileEven);
 -                      }
 -               }
 -        }
 -        if(m_bPlaying)
 -        {
 -               //items
 -               for(int i=0;i<ITEMNUMX;i++)
 -               {
 -                      for(int j=0;j<ITEMNUMY;j++)
 -                      {
 -                             painter.drawPixmap(m_crdnt[i][j].x,m_crdnt[i][j].y,m_size[i][j].w,m_size[i][j].h,*m_pItem[i][j]);       
 -                      }
 -               }
 -               //set cursor to the current focus item
 -               if(!m_bMoving && curX != -1 && curY != -1)
 -               {
 -                      painter.drawPixmap(curX*ITEMWIDTH,curY*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_cursor);
 -               }
 -        }
 -        painter.end();
 - }
 
 换到红帽9下,改成如下样子 - void QzBoard::paintEvent(QPaintEvent* event)
 - {
 -        QPainter painter;
 -                      painter.begin(this);
 -        ////grid
 -        for(int i=0;i<ITEMNUMX;i++)
 -        {
 -               for(int j=0;j<ITEMNUMY;j++)
 -               {
 -                      if((i+j)%2)
 -                      {
 -                             painter.drawTiledPixmap(i*ITEMWIDTH,j*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_tileOdd);
 -                      }
 -                      else
 -                      {
 -                             painter.drawTiledPixmap(i*ITEMWIDTH,j*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_tileEven);
 -                      }
 -               }
 -        }
 -        if(m_bPlaying)
 -        {
 -               //items
 -               for(int i=0;i<ITEMNUMX;i++)
 -               {
 -                      for(int j=0;j<ITEMNUMY;j++)
 -                      {
 -                             painter.drawTiledPixmap(m_crdnt[i][j].x,m_crdnt[i][j].y,m_size[i][j].w,m_size[i][j].h,*m_pItem[i][j]);       
 -                      }
 -               }
 -               //set cursor to the current focus item
 -               if(!m_bMoving && curX != -1 && curY != -1)
 -               {
 -                      painter.drawTiledPixmap(curX*ITEMWIDTH,curY*ITEMHEIGHT,ITEMWIDTH,ITEMHEIGHT,m_cursor);
 -               }
 -        }
 -        painter.end();
 - }
 
 不能正常工作了. grid那块能显示,可items那块就显示不出来. 我猜可能是双buffer的问题,可是,我不会-_-## 哪位兄弟指教我一下.
  
 
 |