天天看點

【QT5】QListWidget清單框的使用

QListWidget類可以實作基于清單的方式展示資料。

QListWidget清單框的建立

QListWidget 是 Qt 所提供的控件類,用于建立清單,該類的繼承關系如下:

QListWidget -> QListView -> QAbstractItemView -> QAbstractScrollArea -> QFrame -> QWidget      
其中,QListView 也可用于建立清單,其與QList Widget的不同之處在于,QListView功能更加強大,可以制作複雜的清單,而QListWidget隻能穿件結構簡單的清單      

QListWidget清單框的使用

建立好的QListWidget類對象,是一個空清單,我們可以利用QListWidget類及父類提供的屬性、方法等,對建立清單執行各類所需操作。

  1. QListWidget清單框周遊使用,增加、删減清單項

    (1)周遊QListWidget清單框所有item,并删除重複item

//删除重複清單項
void listWidget::deleteRepetitionItem(QString str)
{
    QString list;
    int Row=0;
    while((ui->listWidget_cali->count()) > Row)
    {
        list=ui->listWidget_cali->item(Row)->text();
        if(str==list)
        {
            qDebug()<<"删除成功";
            ui->listWidget_cali->takeItem(Row);
        }
        Row++;
    }
}      

(2)周遊QListWidget清單框所有item,增加未重複item

//增加未重複清單項
void listWidget::add_unRepetitionItem(QString str)
{
    QString list;
    int Row = 0;
    while((ui->listWidget_cali->count()) > Row )
    {
        list=ui->listWidget_cali->item(Row)->text();
        if(str==list)
            return;
        Row++;
    }
    ui->listWidget_cali->addItem(str);
}      
  1. 判斷目前清單中含有的清單項的總數,添加彈窗及item顯示
//如果目前清單控件中含有清單項數量為空
if (ui.listWidget_calib->count() <= 0)
    {
           //添加一個彈窗,預設未點選Yes或No選項時,執行了Yes操作
      QMessageBox::StandardButton result = QMessageBox::information(NULL, u8"提示", u8"是否重新建立模闆?", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
      //彈窗選項選擇Yes
            if (result == QMessageBox::Yes)
        return;
      else
      {
        //在清單内添加數字顯示
                int m_count = 6;
        ui.listWidget_calib->clear();
        for (int i = 0; i < m_count; i++)
        {
          ui.listWidget_calib->addItem(QString::number(i));
        }
      }
    }```