我想将表格中的列设置为只读!我尝试了所有可能的标志组合都没有成功
item = QtGui.QTableWidgetItem()
from operator import xor
item.setFlags(xor(item.flags(),QtCore.Qt.ItemIsEditable))
self.Table.setHorizontalHeaderItem(4, item)
我也尝试使用and not,!=和^运算符,但列项目仍可编辑
更新资料
我想我误会了!我认为当我使用insertRow()之类的操作将一列中的HorizontalHeaderItem设置为不可编辑时,该列中的所有新项目将自动变为不可编辑。
插入新行后,我已经对每个新添加的项目执行了这些功能!
tableWidget.insertRow(row+1)
if tableWidget is self.myTable:
item = QtGui.QTableWidgetItem()
item.setFlags(item.flags() != QtCore.Qt.ItemIsEditable)
tableWidget.setItem(row+1, 4, item)
我认为更好(但更复杂)的解决方案是使用setItemDelegateForColumn()和QtGui.QItemDelegate()创建只读的costum QTableWidgetItem,每次插入或创建新行时都会添加
编辑
好吧,我尝试如上所述使用setItemDelegateForColumn()和QtGui.QItemDelegate(),但是出现了以下警告
> py