【问题标题】:Show Editors for All Cells in Row in QTableView在 QTableView 中显示行中所有单元格的编辑器
【发布时间】:2009-04-21 01:11:22
【问题描述】:

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

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

任何建议将不胜感激。

谢谢!

【问题讨论】:

    标签: qt qt4


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      相关资源
      最近更新 更多