回退功能

点击返回的箭头,返回上一个页面(即后退一步)

使用:this.$router.go(-1);

代码如下:

<template>
    <div>
        <img  @click="fun()" src="../../static/huitui.jpg">
    </div>
</template>
<script>
export default {
   methods:{
       fun(){
           this.$router.go(-1);
       }
   } 
}
</script>
<style scoped>
    img{
        width:0.1rem;
        height:0.2rem;
        cursor: pointer;
    }
</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现QTableView的撤销回退功能,需要使用QAbstractItemModel中的数据更改信号和QItemSelectionModel中的选择更改信号。可以使用QItemSelectionModel中的selectionChanged信号来跟踪选择更改,并在数据更改时使用model的dataChanged信号来更新状态。 以下是一个简单的实现示例: ``` class UndoRedoTableView(QTableView): def __init__(self, parent=None): super(UndoRedoTableView, self).__init__(parent) self.undoStack = QUndoStack(self) self.selectionModel().selectionChanged.connect(self.onSelectionChanged) self.model().dataChanged.connect(self.onDataChanged) def keyPressEvent(self, event): if event.matches(QKeySequence.Undo): self.undoStack.undo() elif event.matches(QKeySequence.Redo): self.undoStack.redo() else: super(UndoRedoTableView, self).keyPressEvent(event) def onSelectionChanged(self, selected, deselected): self.undoStack.push(SelectionChangeCommand(self, selected)) def onDataChanged(self, topLeft, bottomRight): self.undoStack.push(DataChangeCommand(self, topLeft, bottomRight)) class SelectionChangeCommand(QUndoCommand): def __init__(self, view, selected): super(SelectionChangeCommand, self).__init__() self.view = view self.oldSelected = selected self.newSelected = view.selectionModel().selection() def undo(self): self.view.selectionModel().select(self.oldSelected, QItemSelectionModel.ClearAndSelect) def redo(self): self.view.selectionModel().select(self.newSelected, QItemSelectionModel.ClearAndSelect) class DataChangeCommand(QUndoCommand): def __init__(self, view, topLeft, bottomRight): super(DataChangeCommand, self).__init__() self.view = view self.topLeft = topLeft self.bottomRight = bottomRight self.oldValues = [] self.newValues = [] for row in range(topLeft.row(), bottomRight.row() + 1): for column in range(topLeft.column(), bottomRight.column() + 1): self.oldValues.append(view.model().data(view.model().index(row, column))) self.newValues.append(view.model().data(view.model().index(row, column))) def undo(self): for i in range(len(self.oldValues)): self.view.model().setData(self.view.model().index(self.topLeft.row() + i // (self.bottomRight.column() - self.topLeft.column() + 1), self.topLeft.column() + i % (self.bottomRight.column() - self.topLeft.column() + 1)), self.oldValues[i]) def redo(self): for i in range(len(self.newValues)): self.view.model().setData(self.view.model().index(self.topLeft.row() + i // (self.bottomRight.column() - self.topLeft.column() + 1), self.topLeft.column() + i % (self.bottomRight.column() - self.topLeft.column() + 1)), self.newValues[i]) ``` 在这个示例中,我们继承了QTableView,并为其添加了一个撤销回退栈。我们通过连接selectionChanged和dataChanged信号来跟踪选择更改和数据更改。我们还为QTableView添加了一个keyPressEvent,以便能够使用撤销和重做快捷键操作撤销回退栈。 我们还创建了两个QUndoCommand类,SelectionChangeCommand和DataChangeCommand。SelectionChangeCommand记录了旧的选择和新的选择,并在撤销和重做时更新选择。DataChangeCommand记录了旧值和新值,并在撤销和重做时更新数据。 使用这个实现示例,你可以在QTableView中添加撤销回退功能

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值