6

我创建了一个 QTableWidget :

self.table = QtGui.QTableWidget()
self.table.setObjectName('table')
self.table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
verticalLayout.addWidget(self.table)

通过此选择,可以选择行,但我不希望用户可以编辑此表的任何单元格。我知道您可以在填写表格时启用每个单元格。但是是否有可能将整个表格的单元格设置为非活动状态(在填充表格之后),而仍然可以选择行?

TIA马丁

4

2 回答 2

16

利用

self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)

在这里您可以找到其他触发器,以防万一您需要它们)

于 2013-06-14T08:53:22.387 回答
4

您可以通过设置标志ItemIsSelectableItemIsEnabled表格中的每个项目来禁用编辑:

table = QTableWidget(10,10)

for i in range(10):
    for j in range(10):
        item = QTableWidgetItem(str(i*j))
        item.setFlags( Qt.ItemIsSelectable |  Qt.ItemIsEnabled )
        table.setItem(i, j, item)
于 2015-09-22T21:59:04.020 回答