qt 设计器可编辑 QTableWidget 的某些列

时间:2021-07-04 09:44:20

标签: python pyqt pyqt5 qt-designer qtablewidget

我有一个用 Qt Designer 创建的 QTableWidget,想知道是否可以 使某些列可编辑而其他列不在 Qt 设计器中。我在 python 中看到了解决方案 或 c++,但我想知道在 qt 设计器中是否可行。

2 个答案:

答案 0 :(得分:2)

您将无法使用 Qt Designer 执行此操作,因为您最多可以使 QtDesigner 创建的项目不可编辑(默认情况下这些项目可编辑),而不是代码创建的新行或列。因此,正如我在 this post:

class ReadOnlyDelegate(QtWidgets.QStyledItemDelegate):
    def createEditor(self, parent, option, index):
        editable_columns = (1, 3, 4)
        if index.column() in editable_columns:
            return super().createEditor(parent, option, index)
delegate = ReadOnlyDelegate(self.qtable_widget)
self.tableWidget.setItemDelegate(delegate)

答案 1 :(得分:1)

对于整个专栏,我不这么认为。列的属性中没有提供标志。如果您的表格不是太大,您可以像这样单独编辑项目:

在设计器中,右键单击 QTAbleWidget,然后单击 Edit Items...。然后,切换到 Items 标签。

从那里,点击任何项目,然后打开 Properties << 标签。在那里,您应该找到一个复选框,用于确定该特定项目是否可编辑。