在 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)
我需要在保持滚动启用的同时禁用 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)