Python 防止剪切QTableWidget委托';PySide中的编辑

Python 防止剪切QTableWidget委托';PySide中的编辑,python,pyside,qtablewidget,Python,Pyside,Qtablewidget,如何防止在QTableWidget委托中剪裁自定义编辑器 我正在处理一个PySide项目,其中包含一些奇特的数据,我希望通过QTableWidget以多种方式进行编辑 为此,我定义了一个定制的QStyledItemDelegate,它为每个列生成一个不同的编辑器。具有自定义大小的小部件将根据其自己的内部方法集_editor _rect调整大小,该方法本身由代理的UpdateDitorGeometry调用: class Element(object): ... ... def set_edi

如何防止在QTableWidget委托中剪裁自定义编辑器

我正在处理一个PySide项目,其中包含一些奇特的数据,我希望通过QTableWidget以多种方式进行编辑

为此,我定义了一个定制的QStyledItemDelegate,它为每个列生成一个不同的编辑器。具有自定义大小的小部件将根据其自己的内部方法集_editor _rect调整大小,该方法本身由代理的UpdateDitorGeometry调用:

class Element(object):
...
...
  def set_editor_rect(self, editor, option):
      rect = option.rect
      rect.setTop(rect.top() - self.expand_top)
      rect.setBottom(rect.bottom() + self.expand_bottom)
      rect.setLeft(rect.left() - self.expand_left)
      rect.setRight(rect.right() + self.expand_right)
      editor.setGeometry(rect)
这是可行的,但它会在表格的边界处剪辑编辑器,这意味着底部的行是不可编辑的

是否可以将此编辑器设置为不剪裁或将其提升到其父编辑器之上


如果所有其他操作都失败了,那么如何让这些编辑器在表格上方弹出对话框呢?我是否放弃委托的概念?

要在没有委托的情况下工作,可以将小部件放入单元格中(使用
setCellWidget
)。如果默认窗口小部件不适合,则始终可以创建自定义窗口小部件。