QT显示如何减轻闪屏(双缓冲和NoErase)

摘要:
大多数使用后,BitBlt可以将数据复制到activepanterDev。调用retain(false),这可以防止系统在绘制时首先删除整个区域,因为系统本身也会调用retain函数,这可能会删除要绘制的QRregion。您需要在QWidget对象中设置WFlags:此参数需要在QWridget构造函数中传递。

很多同志在些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

免责声明:文章转载自《QT显示如何减轻闪屏(双缓冲和NoErase)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unity小知识点大全(二)SQL Serever学习4下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows 汇编语言编程教程[转]

  目录 介绍   ……………………………………………………………………………2 为什么选用汇编语言 …………………………………………………………2 为什么选择Windows系统……………………………………………………2 Ⅰ开始学习之旅 ……………………………………………………………….…3 编译器   ……………………………………………………………………...

网络通信IO的演变过程(一)(一个门外汉的理解)

以前从来不懂IO的底层,只知道一个大概,就是输入输出的管道怼到一起,然后就可以传输数据了。 最近看了周志垒老师的公开课后,醍醐灌顶。 所以做一个简单的记录。 0 计算机组成原理相关 0.1. 计算机的基本组成大家都了解一点,如下图,当操作系统启动的时候,首先进入内存的除了BIOS,然后就是Linux内核程序。 内核暂时先理解成系统程序,比如我们想通过键...

mariadb5.5.56二进制离线安装

在生产环境中一般使用发布好的二进制版本,简单概括一下安装过程:   1. 下载 地址为:https://downloads.mariadb.org/mariadb/5.5.56/   这里选择最新版本的5.5.56稳定版,进入后根据计算机位数选择,这里下载适用于64位操作系统的Linux x86_64版本   这里下载包含glibc和不包含glibc的都是...

ModelAndView学习笔记

作者:水车 api: 构造函数摘要 ModelAndView()           bean样式用法的默认构造函数:填充bean属性,而不是传递构造函数参数。 ModelAndView(Object view)           当没有模型数据暴露时,方便的构造函数。 ModelAndView(Object view, Map model) ...

CentOS 6.5的安装详解

转http://www.cnblogs.com/zlslch/p/5063709.html 不多说,直接上干货!   主流: 目前的Linux操作系统主要应用于生产环境, 主流企业级Linux系统仍旧是RedHat或者CentOS。   免费: RedHat 和CentOS差别不大,CentOS是一个基于Red Hat Linux 提供的可自由使用源代码的企...

Android pm 命令详解

一、pm命令介绍与包名信息查询 1.pm命令介绍 pm工具为包管理(package manager)的简称 可以使用pm工具来执行应用的安装和查询应用宝的信息、系统权限、控制应用 pm工具是Android开发与测试过程中必不可少的工具,shell命令格式如下: pm <command> 2.包名信息查询 shell模式下: pm list p...