使用Qt creater平台进行开发时,我们少不了使用各种图片资源,如何将这些图片资源存放起来以至于项目可以方便调用和修改是一项基本的操作。
Qt存放图片的两种方式:
一、以资源文件存放
这种方式是将图片资源存放在Qt创建生成的项目下资源文件里,以.qrc的形式进行编译保存,是Qt creater平台的内置方法,这样存放的图片有以下优点和缺点:
优点:
(1)方便调用,图片路径地址是基于当前资源文件的路径地址为标的的,是唯一的
(2)随意移植,这样存放的图片资源是放在项目依赖文件中的,不受外部影响
(3)加载速度快,资源文件是被预加载的
缺点:
(1)图片文件不能过大(必须添加大图片文件时,可在Qt项目文件xxx.pro里添加 CONFIG += resources_big )
(2)程序整体体积会增大
操作方法:
1.右击项目文件——选择添加新文件,出现以下界面——选择Qt>>>Qt Resource File确认创建
2.创建成功后右击Resources下面的Image.qrc(命名自取),点击添加现有文件将想要添加进去的图片选中确认即可(原图片存放文件夹建议放在项目文件夹里,方便添加)
3.图片添加成功后,右击图片选择Copy Path即可复制该图片唯一的路径地址
二、以外部文件存放
以外部文件存放图片的优缺点:
优点:
(1)不占用程序空间
(2)可存放大尺寸,大容量图片
(3)路径地址可根据需求修改
缺点:
(1)加载速度慢
(2)存在被修改,丢失的风险
使用Qt创建一个项目,在进行编译和运行后(debug或release),会在相应的输出文件夹里找到产生的makefile文件,该文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系,而我们存放图片资源的外部文件就是相对于makefile文件的,就是说项目的根目录就是makefile文件所在的地方。
根据上面分析,得知我们要存放图片的外部文件夹要放在makefile文件所在的目录里
操作方法:
1.在makefile文件所在目录下创建外部文件夹,将要使用的图片放进去
2.在程序里调用路径地址,路径地址相对于makefile文件而言,例如
label->setPixmap(QPixmap("./outsideImage/image.png"));
./ 意为相对根目录而言的当前目录,也就是根目录所在的目录,此处即为makefile文件所在的目录
./outsideImage/image.png 意为当前目录下的outsideImage文件夹下的image.png文件
两种方法各有利弊,根据需求选择是明智的。