当用户开始编辑 QTableView
中的任何单元格时,我想显示一行中所有单元格的编辑器。我做了几次尝试,但我无法获得正确的行为。
- 打开多个编辑器的唯一方法是通过
QAbstractItemView::openPersistentEditor()
- 尝试连续调用QAbstractItemView::edit()
结果只有一个编辑器。 - 我不能使用
QAbstractItemView
中的clicked()
和doubleClicked()
等信号来调用编辑,因为这样它就不会尊重编辑 View 的触发器。 - 似乎没有“编辑完成”信号。我想将此信号连接到一个插槽,该插槽为编辑行中的单元格调用
closePersistentEditor()
。
如有任何建议,我们将不胜感激。
谢谢!
最佳答案
我讨厌成为坏消息的传播者,但我想不出任何简单的方法来做你想做的事。我可以想到几个选项,一个比一个更痛苦:
- 您可以创建一个始终显示编辑器的委托(delegate),当用户更改所选行时,为新选择的行设置该委托(delegate),为取消选择的行设置原始委托(delegate)。
- 您可以尝试从 TableView 继承,并覆盖为给定行中的所有内容绘制适当项目的行为。我不知道这会有多难,但我怀疑这是否微不足道。
- 您可以创建自己的 View 来显示模型。我从来没有这样做过,而且我不愿意考虑“完成”支持模型所需的一切。但是,为了与某个特定模型相匹配,您也许可以侥幸逃脱。
关于qt - 在 QTableView 中显示行中所有单元格的编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/770686/