防止在PySide

时间:2015-07-26 15:31:14

标签: python pyside qtablewidget

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

clipped editor in a QTableWidget

我正在开发一个PySide项目,其中包含一些我希望从QTableWidget以各种方式编辑的奇特数据。

为此,我定义了一个自定义QStyledItemDelegate,它为每列生成不同的编辑器。具有自定义大小的窗口小部件根据其自己的内部方法set_editor_rect调整大小,该方法本身由委托的updateEditorGeometry调用:

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)

这样可行,但它会在表格边界剪辑编辑器,这意味着底行不可编辑。(见图片)

是否可以将此编辑器设置为不剪辑,或者将其设置为高于其父级?

如果所有其他方法都失败了,那么如何让这些编辑器弹出桌面上方的对话框呢?我是否放弃了代表的概念?

0 个答案:

没有答案