推送 header 部分项目后如何防止单元格编辑?
How to prevent cell editing after pushing header section item?
当我在 QTableWidget
中按下水平 header 部分项目时,此列中上方的单元格就可以进行编辑了。
我该如何预防?
正在查看 QTableWidget documentation i found a way to fix your problem. You have to edit the every single vertical header item and modify their flags 不可编辑。
const int size = ui->tableWidget->columnCount();
for (int i=0; i<size; i++) {
QTableWidgetItem * item = ui->tableWidget->verticalHeaderItem(i);
item->setFlags(...every single flag you want);
}
您在此 link 中有可用标志的列表。
问题与
的干扰有关
- 单击列 header 和
时选择列
- 选中项目后立即开始编辑(
editTriggers > CurrentChanged
)
所以,基本上,您应该禁用一种或两种行为。
- 要在单击 header 时禁用选择列,您可以查看包含许多替代解决方案的问题 Disable selecting row or column by clicking the header in QTableWidget。
- 或者通过禁用
CurrentChanged
不立即开始编辑。
当我在 QTableWidget
中按下水平 header 部分项目时,此列中上方的单元格就可以进行编辑了。
我该如何预防?
正在查看 QTableWidget documentation i found a way to fix your problem. You have to edit the every single vertical header item and modify their flags 不可编辑。
const int size = ui->tableWidget->columnCount();
for (int i=0; i<size; i++) {
QTableWidgetItem * item = ui->tableWidget->verticalHeaderItem(i);
item->setFlags(...every single flag you want);
}
您在此 link 中有可用标志的列表。
问题与
的干扰有关- 单击列 header 和 时选择列
- 选中项目后立即开始编辑(
editTriggers > CurrentChanged
)
所以,基本上,您应该禁用一种或两种行为。
- 要在单击 header 时禁用选择列,您可以查看包含许多替代解决方案的问题 Disable selecting row or column by clicking the header in QTableWidget。
- 或者通过禁用
CurrentChanged
不立即开始编辑。