PyQT5 QtWidgets 设置单元格不可编辑/可编辑 恢复单元格默认设置

当时写这个地方的时候需要在一定条件下把QtWidgets表格的一部分单元格设为不可编辑,在一定条件下又把它们设为可编辑,给我恶心坏了,PyQT的QtWidgets真是反人类的设计。
需要先定义一个有某种特征的QTableWidgetItem,然后将其放到需要修改特征的QtWidgets的单元格上去,要设定QTableWidgetItem的特征还必须修改ItemIsEnabled项。

已经忘了当时是怎么写出来的了,查了文档也查了许多博客,回顾记录一下。

假设已经定义好了ui.tableWidget和i,j,若需要设置单元格(i, j)为不可编辑,则应为:

from PyQt5 import QtWidgets, QtCore

item1 = QtWidgets.QTableWidgetItem()
item1.setFlags(QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
ui.tableWidget.setItem(i, j, item1)

更神奇的来了,恢复单元格(i,j)的默认设置,或者用于设置单元格(i, j)可编辑,应为:

from PyQt5 import QtWidgets, QtCore

item2 = QtWidgets.QTableWidgetItem()
item2.setFlags(QtCore.Qt.ItemFlag(63))
ui.tableWidget.setItem(i, j, item2)

就这里写的这么些Flag我试了个遍基本上,才算是找出来怎样设为不可编辑。