千元左右的平板:在Qt里使用一个图片文件存储多个icon图标(附源码)

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 03:34:23

 

在Qt里使用一个图片文件存储多个icon图标(附源码)

因为icon图像一般都很小,大部分16×16的或者32×32的,在存储成文件的时候反而文件头占的空间比图像的内容要多,所以一般都会选择将多个图标合成到一个文件里,然后在应用里读取对应的图标。下面是一个由多个16×16的图标组合出来的图片

要在Qt中读取相应的图标,有一个很简单的函数可以实现该功能
QPixmap QPixmap::copy ( int x, int y, int width, int height ) const
只要设置好坐标和大小就能很方便的取得子图像,比如copy(0,0,16,16)可以取得上面的左边第一个图标,copy(16,0,16,16)取得第二个图标。我写了一个简单的程序去演示这个功能,用不同的图标设置不同按钮的背景

//main.cpp
#include
#include
#include
#include
#include
#include

int main(int argc,char *argv[]){ QApplication app(argc,argv); QWidget *ww=new QWidget(); QHBoxLayout *hlayout1=new QHBoxLayout(); QHBoxLayout *hlayout2=new QHBoxLayout(); QPushButton *bb; QPixmap pic("icons.png"); for(int i=0;i<7;i++){ bb=new QPushButton();bb->setIcon(pic.copy(i*32,0,16,16)); hlayout1->addWidget(bb); bb=new QPushButton();bb->setIcon(pic.copy(i*32+16,0,16,16)); hlayout2->addWidget(bb); } QVBoxLayout *layout=new QVBoxLayout(); layout->addLayout(hlayout1); layout->addLayout(hlayout2); ww->setLayout(layout); ww->show(); return app.exec(); }
多个图片文件合成一个文件 怎样在邮箱里存储图片 怎样在邮箱里存储图片 怎么在linux里使用usb接口的移动存储硬件拷贝文件 用什么软件可以把多个图标ICON文件打包成一个DLL文件,以后还要可以进行添加的。 怎么快速把多个TXT格式的文件集中在一个TXT文件里 在photoshop中把多个图片放在一起成为一个文件 QD中 MID格式的文件,无法存储到存储卡中,只是存储在手机里.怎么办? 电影大亨的存储进度在个文件夹里哪?? 我的QD存储卡里的sound文件夹里有一个ILLMAR~1文件,删不掉,造成铃声不能使用自定义的. asp.net中在一个类文件中要做一个用户名和密码的验证,用参数传,然后提交到一个存储过程里,怎么写 linux下使用Qt时,启动Qt没有新建工程 怎么使用SQL来存储图片 如何从图片中扣出不规则图使这图成为一幅独立不规则图,即不是换个背景放在矩形里存储的,要存为不规则图 在Windows下使用Qt开发应用程序,能否调用Windows的API? 如何在邮箱存储文件 如何将一百多个图片,歌曲文件压缩成一个文件 那是个什么软件?能把文件隐藏在图片里并上传到163.相册里的 .icon是什么文件?怎么打开? icon文件怎么做出来? 为什么把图片用软件转换成icon格式后使用时出现无效图片的警告! 下载了一个WAP专用地图,放到哪个文件里可以在游戏使用 在使用Photoshop 时,从“文件”里面打开一个图片时,为什么不按任何键,只用不着鼠标点就可以多选? 关于QT designer使用的问题