QT application programming: QTableWidget delete selected multiple rows and select all, cancel select all

/**
 * @brief Widget::on_toolButton_del_TableWidget_clicked
 * 删除选中的表格
 */
void Widget::on_toolButton_del_TableWidget_clicked()
{
     /*获取选中的列表里的所有条目*/
    QList<QTableWidgetItem*> list=ui->tableWidget_Measure->selectedItems();
    if(list.count()<=0)
    {
        QMessageBox::warning(this, tr("删除作业要素列表"),
        tr("请选择需要删除的列表."),
        QMessageBox::Ok);
        return;
    }

    /*从列表中依次移除条目*/
    for(int i=0;i<list.count();i++)
    {
        /*获取条目的行号*/
        int row=ui->tableWidget_Measure->row(list.at(i));
        qDebug()<<"即将卸载的行号:"<<row;
        delete list.at(i); //彻底删除条目

        //因为上面的循环是以条目数量为准,所以卸载行号只需要卸载一行即可
        if(row!=-1)
        {
            ui->tableWidget_Measure->removeRow(row);
        }
    }
}


/**
 * @brief Widget::on_toolButton_select_all_clicked
 * @param checked
 * 全选和取消全选
 */
void Widget::on_toolButton_select_all_clicked(bool checked)
{
   if(checked)
   {
       //将所有行高亮选中
       ui->tableWidget_Measure->selectAll();
   }
   else
   {
       /*
        取消选择所有选定项目。当前索引不会更改。
        另请参见setSelection()和selectAll()。
        */
       ui->tableWidget_Measure->clearSelection();
   }
}

 

Guess you like

Origin blog.csdn.net/xiaolong1126626497/article/details/111055164