QListWidget实现图片缩略图形式的列表

来源:互联网 发布:立项依据怎么写 知乎 编辑:程序博客网 时间:2024/04/20 04:50

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已经不存在了。
1 0