您的位置:首页 > 其它

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

2015-07-22 15:47 417 查看
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已经不存在了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: