tableWidget删除除了头外的内容并释放

    //格式化  注意 每删除一行 rowCount会减一
    for(;rowCount()!=0;)
    {
        removeRow(rowCount()-1);
    }

转载于:https://www.cnblogs.com/granx/p/9597474.html

可以通过连接checkBox的 `stateChanged` 信号和 tableWidget 的 `setHorizontalHeaderLabels` 来实现。 首先,在你的 UI 界面中添加一个 checkBox 和一个 tableWidget,然后在代码中连接它们: ```cpp // 获取 checkBox 和 tableWidget 的指针 QCheckBox* checkBox = ui->checkBox; QTableWidget* tableWidget = ui->tableWidget; // 连接 checkBox 的 stateChanged 信号和槽函数 connect(checkBox, &QCheckBox::stateChanged, [tableWidget](int state) { // 如果 checkBox 被选中 if (state == Qt::Checked) { // 获取 tableWidget表头 QStringList headers; for (int i = 0; i < tableWidget->columnCount(); ++i) { headers << tableWidget->horizontalHeaderItem(i)->text(); } // 在表头第一列插入 checkBox 的文本 headers.insert(0, checkBox->text()); // 设置 tableWidget表头 tableWidget->setHorizontalHeaderLabels(headers); } // 如果 checkBox 被取消选中 else { // 获取 tableWidget表头 QStringList headers; for (int i = 0; i < tableWidget->columnCount(); ++i) { headers << tableWidget->horizontalHeaderItem(i)->text(); } // 如果表头的第一列是 checkBox 的文本,就删除它 if (headers[0] == checkBox->text()) { headers.removeFirst(); } // 设置 tableWidget表头 tableWidget->setHorizontalHeaderLabels(headers); } }); ``` 这段代码中,我们首先获取了 `checkBox` 和 `tableWidget` 的指针,并连接了 `checkBox` 的 `stateChanged` 信号和一个 lambda 表达式作为槽函数。当 `checkBox` 被选中时,我们获取了 `tableWidget` 的表头,将 `checkBox` 的文本插入到表头的第一列,然后设置 `tableWidget` 的表头。当 `checkBox` 被取消选中时,我们也获取了 `tableWidget` 的表头,检查表头的第一列是否是 `checkBox` 的文本,如果是就将它删除,然后设置 `tableWidget` 的表头。 这样,当 `checkBox` 被选中时,`tableWidget` 的表头就会多出一列,第一列为 `checkBox` 的文本;当 `checkBox` 被取消选中时,`tableWidget` 的表头第一列会消失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值