【问题标题】:Performing undo and redo operation on QTableWidget对 QTableWidget 执行撤消和重做操作
【发布时间】:2016-03-09 18:41:26
【问题描述】:

我正在使用QTableWidget 来显示一个表格来绘制图表。用户可以执行以下操作:输入、复制、剪切和粘贴、添加行、添加列、插入、删除等。所有这些操作都应该堆叠起来,以便用户可以撤消或重做所有操作。

我查看了QUndoStack,但在QTableWidget 的上下文中,我不确定我必须将哪些数据或对象推入堆栈。

【问题讨论】:

  • 你已经有 QUndoCommand 了吗?实际上你需要创建一个继承自 QUndoCommand 的类。
  • Apin :不,我在视图中使用了 QGraphicsItem 中的 QundoCommand 的概念。我只管理添加和删除项目。但这里是表格数据。

标签: qt qtablewidget qmodelindex


【解决方案1】:

对我来说,您必须在编辑之前和之后记住从QUndoCommand 继承的类中的值,以便undo()redo() 可以恢复您想要的状态

【讨论】:

  • 但是添加行、列、插入呢?如果我只存储数据。?
  • 首先,您必须写下您必须做的所有操作以及正在发生的变化。例如:编辑一个单元格,你必须记住行、列和 2 个字符串。添加行,然后您必须记住它的添加位置。删除行、行索引和行数据
猜你喜欢
  • 1970-01-01
  • 2012-06-22
  • 2018-08-23
  • 1970-01-01
  • 2013-01-17
  • 2010-12-10
  • 2010-10-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多