• 7905阅读
  • 0回复

QPainter  和窗口的重绘问题 [复制链接]

上一主题 下一主题
离线nieyong2010
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-28
绘制一个雷达的显示界面,界面为同心圆环,有指针旋转扫描得到图像,图像使用QPainter::drawPoint()画点的方式绘制。


问题一:在QT中是否有极坐标呢?现在是使用QPainter::rorate()的方式绘制雷达背景的。


问题二:使用QPainter::drawPoint()绘制雷达图像的时候,能够只改变当前指针附近的点呢,无需整个屏幕的图像重新绘制?下面我说说现在做的情况:


1. 如果在widget上面直接绘图,每一次update的时候,整个widget都会重新绘制,我在说明文档中看到
“Qt::WA_OpaquePaintEvent                Indicates that the widget paints all its pixels when it receives a paint event   ……”
是否真的没有参数设置,可以在widget或者qframe上面绘制,每次都需要重绘整个界面的雷达数据呢?


2. 在画布qpixmap上面绘制(参考了一个涂鸦板的程序),这样前面绘制的雷达图像不会丢失。但是,因为我把qpixmap设置了透明(为了显现下面图层的雷达背景),在第二次到同一个位置,需要跟新其图像时,擦除qpixmap指针附近的图像时,留下了白色的笔刷,无法将该小块地方设置为透明。


希望有这方面经验的同事能够指点一二。
快速回复
限100 字节
 
上一个 下一个