1、设置所有单元格都不可编辑:
1)在控件属性中设置。
2)在代码里设置: ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
2、设置部分单元格不可编辑:
使用QTableWidgetItem的setFlags函数(单元格较少时候推荐使用)
for(int i = 0; i < ui->tableWidget_Mapping->rowCount(); ++i) //设置单元格不可编辑
{
ui->tableWidget_Mapping->item(i, 0)->setFlags(ui->tableWidget_Mapping->item(i, 0)->flags() & (~Qt::ItemIsEditable));
}
3、 设置某行或者某列不可编辑,其他行列可编辑
继承类QStyledItemDelegate(代理),重写函数createEditor,让其返回空,(单元格较多时推荐使用)
QWidget* ReadOnlyItemDelegate::createEditor(QWidget* parent, const QStyleOptionViewIt