我无法缩小此错误的范围,但是似乎有以下问题:

  • saveState()
  • 重新启动应用程序
  • 修改模型,使其少一列
  • horizontalHeader()
  • 现在,由于某种原因,headerview的状态完全混乱了。我无法显示或隐藏任何新列,也无法获得合理的状态

  • 我知道,这不是很具描述性,但我希望其他人以前遇到过此问题。

    最佳答案

    对于QMainWindow, save/restoreState 采用版本号。 QTableView's restoreState()不需要,因此您需要自己管理这种情况。

    如果即使模型不匹配也要还原状态,则可以使用以下选项:

  • 将状态与保存时模型中存在的列的列表一起存储,因此,如果列不匹配,则可以避免从数据中还原,并恢复为默认情况
  • 实现自己的save / restoreState函数来处理这种情况(ugh)
  • 添加一个代理模型,该模型为正在还原的状态提供伪造/伪造的列,然后在此之后删除这些列。
  • 关于qt - QTableView和horizo​​ntalHeader()-> restoreState(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1163030/

    10-09 02:11