Qt 选中行时取消其他行勾选:解决代码问题
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); 来取消其他行的勾选,确保只有当前行处于选中状态。
原文地址: https://www.cveoy.top/t/topic/nyAd 著作权归作者所有。请勿转载和采集!