1. 设置表格整体可编辑设置:
# 设置全部单元格可编辑
ui->tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged);
# 设置全部单元格不可编辑
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView的参数介绍:
参数名 | 解释 |
---|---|
QAbstractItemView.NoEditTriggers | No editing possible. 不能对表格内容进行修改 |
QAbstractItemView.CurrentChanged | Editing start whenever current item changes.任何时候都能对单元格修改 |
QAbstractItemView.DoubleClicked | Editing starts when an item is double clicked.双击单元格 |
QAbstractItemView.SelectedClicked | Editing starts when clicking on an already selected item.单击已选中的内容 |
QAbstractItemView.EditKeyPressed | Editing starts when the platform edit key has been pressed over an item. 当在项目上按下平台编辑键时,编辑开始。 |
QAbstractItemView.AnyKeyPressed | Editing starts when any key is pressed over an item.按下任意键就能修改 |
QAbstractItemView::AllEditTriggers | Editing starts for all above actions.以上条件全包括 |
2. 设置表格部分单元格可编辑,部分不可编辑
首先先编辑QTableWidget可编辑,然后设置部分QTableWidgetItem设置不可编辑
# 设置QTableWidget可编辑
ui->tableWidget->setEditTriggers(QAbstractItemView::CurrentChanged);
# 遍历表格的每一行
for(int i=0; i<ui->tableWidget->columnCount()-1; i++)
{
QTableWidgetItem* item = ui->tableWidget->item(i,1); //获取每行第1列的单元格指针
item->setFlags(Qt::ItemIsEnabled);//设置改item不可修改;
}
QTableWidgetItem::setFlags介绍:
item->setFlags(Qt::ItemIsEnabled) 表格单元item不可编辑
item->setFlags(Qt::ItemIsEditable) 表格单元item可编辑