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