[转] - QPixmap全局变量载入多张图片失效问题
我想qt 中QPixmap这个类大家都很熟悉,它可以很简单的在标签上贴图;例如:
QPixmap p;
p.load("1.png");
label->setPixmap(p);
就这么简单,但是我今天突然发现个问题,就是:
QPixmap p;
p.load("1.png");
label->setPixmap(p);
p.load("2.png");
label->setPixmap(p);
p.load("1.png");
label->setPixmap(p);
当用同一个p,即全局变量时,你加载图片1,显示图片1;再加载图片2,显示图片2;可当你再想变回图片一时,你再加载图片一,不好使了,变不回来了,还是显示图片二,你在加载个图片三,好使,再想变回图片二,不好使了。。。。。。
这是为神马呢???
原来,p.load()是将图片加载到缓冲区中:QPixmapCache,当你加载图片二是,图片一并没有被覆盖,此时缓冲区内有图片一和图片二,当你再次加载图片一时,以为缓冲区里应经有了,所以p.load(),直接返回true;但是图片仍是图片二,所以不能显示回图片一!
解决办法很简单,有三种办法:
一、 直接定义局部变量,这样每次都是新的缓冲区;
二、 当再次加载图片时,先将缓冲区清空, QPixmapCache::clear();然后再加载;
三、 在初始化函数里写:QPixmapCache::setCacheLimit(1);设置缓冲区内只能放一张图片,这样就会替换原来的图片,就可以加载新的图片了!
[转] - QPixmap全局变量载入多张图片失效问题的更多相关文章
- input file 重复上传同一张图片失效的解决办法
解决方法: 每次取消图片预览后,重置input[type=’file’]的value的值 链接:https://blog.csdn.net/zd717822023/article/details/78 ...
- input 图片上传,第二次上传同一张图片失效
<input type="file" onchange="angular.element(this).scope().addPhoto(this,event)&qu ...
- 【openCV学习笔记】【1】如何载入一张图片
直接看代码好了 #include <iostream> #include <opencv/highgui.h>//这里主要用到窗口显示 int main(int argc, c ...
- Android图片载入框架最全解析(一),Glide的基本使用方法
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53759439 本文同步发表于我的微信公众号.扫一扫文章底部的二维码或在微信搜索 郭 ...
- Android Handler 异步消息处理机制的妙用 创建强大的图片载入类
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...
- iOS 自己主动登录,登录过程中一直显示载入页
iOS开发中 假设client做的人性化一点肯定会考虑自己主动登录 事实上原理非常easy,就是再首次登录成功之后将username和password存入userdefault 下次登录的时候推断us ...
- Qt中截图功能的实现
提要 需求:载入一张图片并显示,能够放大缩小,能够截取图片的某个矩形并保存. 原以为蛮简单的一个功能,事实上还是有点小复杂. 最简单Qt图片浏览器能够參考Qt自带的Demo:Image Viewer ...
- Core Animation学习总结
文件夹: The Layer Beneath The Layer Tree(图层树) The Backing Image(寄宿层) Layer Geometry(图层几何学) Visual Effec ...
- ym—— Android网络框架Volley(终极篇)
转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103).谢谢支持! 没看使用过Volley的同学能够,先看看Android网络框架Volley(体验篇)和 ...
随机推荐
- 那些臭名昭著的sql
两个或多个表关联,没写where条件,大量的笛卡尔值,严重时会导致数据库有问题. select * from a, b left join c on b.id = c.id left join d o ...
- ARM 处理器的几个相关术语
生产ARM的厂商很多,自然ARM处理器的名字就五花八门.但是,它们有些共同点,那就是:架构和核心. 架构这个概念太宽不太懂,一般不同的架构会有不同的指令集,在不同的架构下面还可以有多种核心.核心就是指 ...
- ionic添加admob广告教程
1.在你的ionic项目中使用如下命令添加admob插件: cordova plugin add cordova-plugin-admobpro 2.添加完成后,在$ionicPlatform.rea ...
- Android 设置旋转朝向
在AndroidMenifest.xml中activity标签中,添加一个属性 android:screenOrientation="landscape"
- 禁用SettingSyncHost.exe
TASKKILL /F /IM SettingSyncHost.exe /T
- GCM 发送接收消息 Message Client Server 服务器端,客户端
GCM 传递参数 最近用了很多时间做GCM,由于碰到很多问题,因此详细做一下记录,以方便各位网友,不用再走我的重复的路.不过我试了一下GCM在国内很不好用.假如开发国外的程序的话,用GCM倒是很不错的 ...
- ps -C
[root@Nginx_BackUP keepalived]# ps -C nginx PID TTY TIME CMD 3965 ? 00:00:00 nginx 3966 ? 00:00:00 n ...
- [转]ThreadPoolExecutor线程池的分析和使用
1. 引言 合理利用线程池能够带来三个好处. 第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗. 第二:提高响应速度.当任务到达时,任务可以不需要等到线程创建就能立即执行. 第 ...
- WPF常用方法,事件驱动和控件遍历
//初始化数据,默认选中第一项,事件驱动 RadioButton btn = FuncClass.GetChildObject<RadioButton>(this.stackPanel1, ...
- Python中通过cx_oracle操作ORACLE数据库的封闭函数
哈哈,看来我的SQL自动化发布,马上就全面支持ORACLE,MYSQL,POSTGRESQL,MSSQL啦... http://blog.csdn.net/swiftshow/article/deta ...