因为icon图像一般都很小,大部分16×16的或者32×32的,在存储成文件的时候反而文件头占的空间比图像的内容要多,所以一般都会选择将多个图标合成到一个文件里,然后在应用里读取对应的图标。下面是一个由多个16×16的图标组合出来的图片 要在Qt中读取相应的图标,有一个很简单的函数可以实现该功能 //main.cpp 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(); } |
|