众所周知,使用QLabel的setPixmap()就可以将图片显示出来,做视屏解码后显示也可以如此。但是为何我今天还要费力使用基函数drawPixmap()来做绘图?理由有这么些吧:
·使用QLabel很耗费CPU,播放画面过多有卡卡的感觉;
·drawPixmap()使用GPU处理,相对减轻了CPU的负担;
当然,今天这里,只是给出基本思路方法,并非对视频解码后的图像做原样的解析。那么,我们开始吧!
1.首先使用Qtcreator建立项目吧,我这里取名Painter,然后我在网上下载了4副图片,个人觉得还是挺漂亮的,一会展示给大家看;
2.下来新建文件夹,名字就叫images吧,此时了,便于使用,最好把图片名字改成便于自己记忆的。然后添加Qt资源,将4副图全部导入资源文件。
3.此时,我们回到项目的ui文件,在设计器里面,拖进来4个QFrame或者QWidget控件,我是拖进来4个QFrame的,因为可以勾划边框;
4.下来对命名后的4个QWidget使用网格布局吧;
5.此时回到paint的.h文件,加上几个头文件:
#include <QPixmap>
#include <QPaintEvent>
并在私有属性添加以下: