2009-04-21 127 views
3

当用户开始编辑QTableView中的任何单元格时,我想要显示连续行中所有单元格的编辑器。我做了几次尝试,但我无法获得正确的行为。在QTableView中显示行中所有单元格的编辑器

  • 打开多个编辑器的唯一方法是通过QAbstractItemView::openPersistentEditor() - 试图先后致电QAbstractItemView::edit()结果只有一个编辑器。
  • 我不能使用和doubleClicked()这些来自QAbstractItemView的信号来调用编辑,因为那样它就不会考虑视图的编辑触发器。
  • 似乎没有“编辑完成”信号。我想将此信号连接到编辑行中的单元格调用closePersistentEditor()的插槽。

任何意见,将不胜感激。

谢谢!

回答

3

我讨厌成为坏消息的持有者,但我想不出任何简单的方法去做你想做的事。我能想到的几个选项,每超过过去的痛苦:

  • 您可以创建一个委托,它始终显示的编辑器,当用户改变所选行,设置该委托新选定的行,以及取消选定行的原始代表。
  • 您可以尝试从表视图继承,并覆盖为给定行中的所有内容绘制适当项目的行为。我不知道这会有多难,但我怀疑这是微不足道的。
  • 您可以创建自己的视图来显示模型。我从来没有这样做过,而且我不愿意考虑“完成”支持这些模型所需的一切。但是,为了与一个特定的模型相匹配,您可能能够避开它。
相关问题