1.实现的功能
在listWidget中水平添QListWidgetItem,点击按钮删除所有QListWidgetItem,下面直接上代码,代码中有每一步的注释。
2.代码实现
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include<QListWidget>
4 #include<QDebug>
5 MainWindow::MainWindow(QWidget *parent) : 6 QMainWindow(parent), 7 ui(new Ui::MainWindow) 8 { 9 ui->setupUi(this); 10 ui->listWidget->setViewMode(QListView::IconMode); //设置显示图标模式
11 ui->listWidget->setIconSize(QSize(80, 80)); //设置图标大小
12 ui->listWidget->setGridSize(QSize(100, 100)); //设置item大小 13
14 // 设置QLisView大小改变时,图标的调整模式,默认是固定的,可以改成自动调整
15 ui->listWidget->setResizeMode(QListView::Adjust); //自动适应布局 16 // 列表中的图标默认可以拖动,如果想固定不能拖动,使用QListView::Static
17 ui->listWidget->setMovement(QListView::Static); 18 //新建item
19 QListWidgetItem* it1 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"1"); 20 QListWidgetItem* it2 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"2"); 21 QListWidgetItem* it3 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"3"); 22 QListWidgetItem* it4 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"4"); 23 QListWidgetItem* it5 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"5"); 24 //添加item
25 ui->listWidget->addItem(it1); 26 ui->listWidget->addItem(it2); 27 ui->listWidget->addItem(it3); 28 ui->listWidget->addItem(it4); 29 ui->listWidget->addItem(it5); 30 } 31
32 MainWindow::~MainWindow() 33 { 34 delete ui; 35 } 36
37 void MainWindow::on_PushButton_clicked() 38 { 39 int n=ui->listWidget->count();//获取item的总数 40 //删去所有item
41 for(int i=0;i<n;i++) 42 { 43 /*
44 使用takeItem(row)函数将QListWidget中的第row个item移除, 45 移除需要使用delete手动释放其在堆上占用的空间 46 */
47 QListWidgetItem *item = ui->listWidget->takeItem(0); //这里是0,不是i,因为每移除一个item都会导致每个item的row发生变化
48 delete item; 49 } 50 }