QListWidget實現圖片縮略圖形式的列表

1、代碼

#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;
}

2、用到的類方法
QListWidget::setIconSize 設置單元項中圖片大小(上限)
QSize 設置尺寸
QListWidget::setViewMode 設置顯示模式,圖片在上,名字在下,橫向排列
QListWidget::setMovement 設置單元項不可拖動
QListWidget::setSpacing 設置單元項間距
QListWidget::setResizeMode 設置自動適應佈局調整(Adjust適應,Fixed不適應),默認不適應
QListWidgetItem::setSizeHint 設置單元項爲固定的寬度和高度
QListWidget::insertItem 插入項目

QPixmap::scaled 將圖片進行伸縮
QPixmap(Path) 根據路徑生成圖像

QListWidget::clear() 清除所有項目(徹底刪除)

3、注意

QListWidgetItem::setSizeHint 固定了每個單元項的大小, QListWidget::setIconSize 固定了單元項中用來放置圖片的最大尺寸,QPixmap::scaled 是圖片的實際顯示大小,尺寸不能超過設置的最大尺寸。


clear()會delete掉所有添加到列表中的QListWidgetItem,就像代碼中clear()之後註釋掉的item1,不能再次添加了,因爲item1已經不存在了。

 

其他參考鏈接:https://blog.csdn.net/csdn1027192411/article/details/52123556

https://blog.csdn.net/v_xchen_v/article/details/71550498

https://blog.csdn.net/naibozhuan3744/article/details/81070068

https://blog.csdn.net/qq_20991549/article/details/79524256

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章