• 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.界面

  • 相关阅读:
    爱奇艺笔试题 输出01020304... ...
    ThreadPoolExecutor 中为什么WorkQueue会在corePoolSize满了之后入队
    jvisualvm 的使用
    连续子数组的最大和
    最长连续子序列
    leetcode 需要了解的知识点储备
    java String
    mysql MVCC
    java 批量导出(zip文件)
    java 中接口调用
  • 原文地址:https://www.cnblogs.com/LifeoFHanLiu/p/9940520.html
Copyright © 2020-2023  润新知