在QTableView中显示所有行单元格的编辑器

3
当用户开始编辑任何一个单元格时,我希望能够为一行中的所有单元格显示编辑器QTableView。我已经尝试过几次,但是无法获得正确的行为。
  • 唯一打开多个编辑器的方法是使用QAbstractItemView::openPersistentEditor() - 尝试连续调用QAbstractItemView::edit()只会出现一个编辑器。
  • 我不能使用来自QAbstractItemView的信号如clicked()doubleClicked()来调用编辑,因为这样就不会考虑视图的编辑触发器。
  • 似乎没有“编辑完成”信号。我想将此信号连接到一个槽,以便为编辑行中的单元格调用closePersistentEditor()

欢迎任何建议。

谢谢!

1个回答

3

很抱歉我要传递一个坏消息,但我想不到任何简单的方法来实现你想要的。我能想到几个选项,每个选项都比上一个更加痛苦:

  • 您可以创建一个委托,始终显示编辑器。当用户更改所选行时,为新选择的行设置该委托,并为取消选择的行设置原始委托。
  • 您可以尝试从表视图继承,并覆盖绘制给定行中所有内容的适当项目的行为。我不知道这有多困难,但我怀疑这不是简单的。
  • 您可以创建自己的视图来显示模型。我从未这样做过,而且我不愿意考虑完成所有操作所需的一切。但是,为了匹配特定的模型,您可能会成功。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接