查看 Qt 官方地址 Qt Namespace | Qt Core 5.15.14 得到如下说明
默认值是 63,即如下表达式的值(位运算),表示可选择(1)、可编辑(2)、可拖拽(4)、可放入(8)、可勾选(16)、可交互(32)
63 = 1 + 2 + 4 + 8 + 16
Qt.ItemIsSelectable | Qt.ItemIsEditable | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsEnabled
分析得到如下表格
(1)二进制数从右往左数,第1位数用于声明控件是否可选择,1表示可选,0表示不可选
(2)第2位数用于声明控件是否可编辑
(3)第3位数用于声明控件是否可拖拽
(4)第4位数用于声明控件是否可放入
(5)第5位数用于声明控件是否可勾选
(6)第6位数用于声明控件是否可用,是否可交互,要启用前5个功能必须启用该项,好比总开关(重点)
item = QtWidgets.QTableWidgetItem()
item.setCheckState(Qt.Checked)
//只能编辑,其他都不行
item.setFlags(Qt.ItemIsEnabled | Qt.ItemIsEditable)
//只是不能编辑,其他都行
item.setFlags(
Qt.ItemIsEnabled | Qt.ItemIsUserCheckable | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled)
//或者另外一个写法
item.setFlags(Qt.ItemFlags(int("111101", 2)))