1.实现的功能
在listWidget中水平添QListWidgetItem,点击按钮删除所有QListWidgetItem,下面直接上代码,代码中有每一步的注释。
2.代码实现
#include "mainwindow.h" #include "ui_mainwindow.h" #include<QListWidget> #include<QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->listWidget->setViewMode(QListView::IconMode); //设置显示图标模式 ui->listWidget->setIconSize(QSize(80, 80)); //设置图标大小 ui->listWidget->setGridSize(QSize(100, 100)); //设置item大小 // 设置QLisView大小改变时,图标的调整模式,默认是固定的,可以改成自动调整 ui->listWidget->setResizeMode(QListView::Adjust); //自动适应布局 // 列表中的图标默认可以拖动,如果想固定不能拖动,使用QListView::Static ui->listWidget->setMovement(QListView::Static); //新建item QListWidgetItem* it1 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"1"); QListWidgetItem* it2 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"2"); QListWidgetItem* it3 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"3"); QListWidgetItem* it4 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"4"); QListWidgetItem* it5 = new QListWidgetItem(QIcon(":/icon/jpeg.png"),"5"); //添加item ui->listWidget->addItem(it1); ui->listWidget->addItem(it2); ui->listWidget->addItem(it3); ui->listWidget->addItem(it4); ui->listWidget->addItem(it5); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_PushButton_clicked() { int n=ui->listWidget->count();//获取item的总数 //删去所有item for(int i=0;i<n;i++) { /* 使用takeItem(row)函数将QListWidget中的第row个item移除, 移除需要使用delete手动释放其在堆上占用的空间 */ QListWidgetItem *item = ui->listWidget->takeItem(0); //这里是0,不是i,因为每移除一个item都会导致每个item的row发生变化 delete item; } }