Qt之QListWidgetItem的添加与删除

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

3.界面

 

posted @ 2018-11-10 20:36  我寒流  阅读(13234)  评论(0编辑  收藏  举报