Pyside2 QTableWidget 禁止编辑
时间: 2024-05-05 17:15:25 浏览: 163
可以通过设置QTableWidgetItem的标志位来禁止QTableWidget的编辑。具体的实现如下:
```python
from PySide2.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
app = QApplication([])
# 创建QTableWidget
tableWidget = QTableWidget()
tableWidget.setRowCount(5)
tableWidget.setColumnCount(3)
tableWidget.setHorizontalHeaderLabels(['A', 'B', 'C'])
# 在QTableWidget中添加QTableWidgetItem
for row in range(tableWidget.rowCount()):
for col in range(tableWidget.columnCount()):
item = QTableWidgetItem('row: {}, col: {}'.format(row, col))
# 设置QTableWidgetItem的标志位,禁止编辑
item.setFlags(item.flags() ^ 0x0002)
tableWidget.setItem(row, col, item)
tableWidget.show()
app.exec_()
```
在上面的代码中,我们通过设置QTableWidgetItem的标志位,禁止了QTableWidget的编辑。具体来说,我们使用了QTableWidgetItem的flags()方法获取当前标志位,然后使用异或运算符^将标志位中第11位(即Qt::ItemIsEditable)取反,最后将修改后的标志位设置回去。这样就可以实现禁止QTableWidget的编辑了。
阅读全文