很多同志在些QT 程序后会遇见闪屏的问题, 有时速度非常快,但毕竟影响了显示效果,如何做到减轻屏幕抖动或闪屏呢?
我曾试过如下的办法:
1.使用双缓冲。 比如我们在一个Widget里面绘多个图的话, 先创建一个QPixmap对象 然后用QPainter在这个QPixmap对象上绘图,最用后BitBlt 将数据copy到active painterDev上就可以了。
2.QWdiget 对象在重绘的时候选择NoErase。 调用repaint(false)即可,  这样可以防止在绘图的时候 系统会先将整个Region 擦除,这样也可以避免闪屏。 但这个还不足以 去除闪屏,因为系统自己也会调用repaint函数,可能他会erase 需要绘图的QRegion区域, 因此要确保不擦除,需要在QWidget对象中设置WFlags: WRepaintNoErase 属性。 在QT3中 好像直接通过SetWFlags不会起作用,需要在QWidget构造函数中传入这个参数。
有人说或如果不擦除图片 会不会画面残留上次的绘图结果,  这个需要我们自己在绘图的时候做清除,因为是在QPixmap上绘图 并不影响系统中Active painterDev 所以 擦除不会引起屏幕闪烁。

http://blog.sina.com.cn/s/blog_668aae7801017gj9.html

最新文章

  1. WCF 框架运行时类图
  2. Scrum Meeting 13-20151221
  3. 51CTO专访淘宝清无:漫谈Nginx服务器与Lua语言
  4. C#高级编程 反射 代码示例
  5. 限制特定ip访问oracle
  6. 用QFileSystemWatcher来监视文件和目录的改变(内部还是使用了timer)
  7. AMD、CMD、CommonJs规范
  8. Maven 浅谈一
  9. 【NOIP2013TG】solution
  10. pytest生成测试报告-4种方法
  11. 阿里云服务器上通过Docker部署redmine
  12. 关于页面的跳转添加参数(比如id啥的)
  13. B. Random Teams(Codeforces Round 273)
  14. OPENERP 构建动态视图
  15. Qt-网络与通信-获取本机网络信息
  16. ST表(查询区间最值问题)
  17. Map集合按value的大小排序
  18. [转]兼容各个浏览器的H.264播放: H.264+HTML5+FLOWPLAYER+WOWZA+RMTP
  19. js 数组array es5-es6+ 新增方法函数
  20. where条件顺序与建索引顺序

热门文章

  1. c++:类中的static成员
  2. 标准建立二叉树NEW
  3. gets()函数
  4. day10_python学习笔记_chapter13_面向对象编程
  5. Arduino周边模块:执行部件(舵机、直流电机、步进电机)
  6. 简单的表单验证(js、jquery)
  7. zend framework virtualhost设置方法
  8. c/c++实现混合编程
  9. Android之CookieStore的持久化
  10. uva 10003 Cutting Sticks (区间dp)