在 PyQt5 中禁用 QTableWidget 的编辑(启用滚动)

Disable editing of QTableWidget in PyQt5 (with scrolling enabled)

我需要在保持滚动启用的同时禁用 QTableWidget 的编辑和大小调整。此外,用户应该能够 select 并从 table.

复制数据

首先我尝试了这个

self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)

但用户可以拖动和调整列的宽度。我不想要那个。所以我尝试了这个 -

self.tableWidget.setDisabled(1)

现在这会阻止用户调整 table 的大小,但它也会禁用滚动和 select 单元格数据。

如何实现这两个功能? (实际上这三者都有 - 没有编辑,没有调整大小,也没有启用滚动)

要禁用编辑,您的解决方案是正确的:

self.tableWidget.setEditTriggers(QtWidgets.QAbstractItemView.NoEditTriggers)

如果你想让项目的宽度不允许改变,你必须通过header:

self.tableWidget.horizontalHeader().setSectionResizeMode(QtWidgets.QHeaderView.Fixed)