3

当用户开始编辑QTableView. 我做了几次尝试,但我无法获得正确的行为。

  • 打开多个编辑器的唯一方法是QAbstractItemView::openPersistentEditor()尝试QAbstractItemView::edit()在一个编辑器中连续调用结果。
  • 我不能使用诸如clicked()doubleClicked()from之类的信号QAbstractItemView来调用编辑,因为那样它就不会尊重视图的编辑触发器。
  • 似乎没有“编辑完成”信号。我想将此信号连接到一个需要closePersistentEditor()编辑行中单元格的插槽。

任何建议,将不胜感激。

谢谢!

4

1 回答 1

3

我讨厌成为坏消息的传递者,但我想不出任何简单的方法来做你想做的事。我能想到几个选项,每一个都比上一个更痛苦:

  • 您可以创建一个始终显示编辑器的委托,当用户更改所选行时,为新选择的行设置该委托,为取消选择的行设置原始委托。
  • 您可以尝试从表视图继承,并覆盖为给定行中的所有内容绘制适当项目的行为。我不知道这会有多难,但我怀疑这将是微不足道的。
  • 您可以创建自己的视图来显示模型。我从来没有这样做过,我不想考虑“完成”支持模型所需的一切。但是,为了匹配一个特定的模型,您也许可以摆脱它。
于 2009-04-21T18:14:53.617 回答