我有一个用 Qt Designer 创建的 QTableWidget,想知道是否可以 使某些列可编辑而其他列不在 Qt 设计器中。我在 python 中看到了解决方案 或 c++,但我想知道在 qt 设计器中是否可行。
答案 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 <<
标签。在那里,您应该找到一个复选框,用于确定该特定项目是否可编辑。