Qt 选中行时取消其他行勾选:解决代码问题

在代码中,你只对当前选中的行进行了勾选处理,但是没有对其他行进行取消勾选的处理。你需要在 else 语句中对其他行进行取消勾选的处理。修改后的代码如下:

int index = MainWindow::getListCurrenIndex();
for (int i = 0; i < ui->tw_process->rowCount(); i++){
    if (i == index){
        ui->tw_process->item(index, 0)->setCheckState(Qt::Checked);
        qDebug() << 'Checked' << i;
    } else {
        ui->tw_process->item(i, 0)->setCheckState(Qt::Unchecked); // 取消勾选
        qDebug() << 'Unchecked' << i;
    }
}

通过在 else 语句中使用 ui->tw_process->item(i, 0)->setCheckState(Qt::Unchecked); 来取消其他行的勾选,确保只有当前行处于选中状态。

Qt 选中行时取消其他行勾选:解决代码问题

原文地址: https://www.cveoy.top/t/topic/nyAd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录