Qt类4.8帮助文档:http://doc.qt.io/qt-4.8/
1、图片资源文件
<RCC>
<qresource prefix="/list">
<file>image/1.jpg</file>
<file>image/2.jpg</file>
</qresource>
</RCC>
2、实现代码
#include<QApplication>
#include<QListWidget>
#include<QPixmap>
#include<QIcon>
#include<unistd.h>
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QListWidget *listWidget = new QListWidget();
listWidget->setSpacing(10);
// listWidget->setResizeMode(QListView::Adjust);
listWidget->setViewMode(QListView::IconMode);
listWidget->setIconSize(QSize(100,100));
QPixmap pix1(QString(":/list/image/1.jpg"));
QPixmap pix2(":/list/image/2.jpg");
QListWidgetItem *item1 = new QListWidgetItem(QIcon(pix1.scaled(QSize(100,100))),"picture1");
QListWidgetItem *item2 = new QListWidgetItem(QIcon(pix2.scaled(QSize(100,100))),"picture2");
listWidget->addItem(item1);
// listWidget->addItem(item2);
item1->setSizeHint(QSize(100,120));
item2->setSizeHint(QSize(100,120));
listWidget->clear();
listWidget->insertItem(10,item2);
// listWidget->addItem(item1);
// item1->setSizeHint(QSize(100,120));
item2->setSizeHint(QSize(100,120));
listWidget->show();
app.exec();
return 0;
}
3、用到的类方法
QListWidget::setIconSize 设置单元项中图片大小(上限)
QSize 设置尺寸
QListWidget::setViewMode 设置显示模式,图片在上,名字在下,横向排列
QListWidget::setMovement 设置单元项不可拖动
QListWidget::setSpacing 设置单元项间距
QListWidget::setResizeMode 设置自动适应布局调整(Adjust适应,Fixed不适应),默认不适应
QListWidgetItem::setSizeHint 设置单元项为固定的宽度和高度
QListWidget::insertItem 插入项目
QPixmap::scaled 将图片进行伸缩
QPixmap(Path) 根据路径生成图像
QListWidget::clear() 清除所有项目(彻底删除)
4、注意
- QListWidgetItem::setSizeHint 固定了每个单元项的大小, QListWidget::setIconSize 固定了单元项中用来放置图片的最大尺寸,QPixmap::scaled 是图片的实际显示大小,尺寸不能超过设置的最大尺寸。
- clear()会delete掉所有添加到列表中的QListWidgetItem,就像代码中clear()之后注释掉的item1,不能再次添加了,因为item1已经不存在了。