2 Fork me on GitHub 6

5.撤回/重做功能实现简略

实现思路:

 把每次动作/事件压栈或者弹出。

直接代码

class LoadCommand :public QUndoCommand {
private:
    XXModel * xModel;
    int old;
    int new;
    
    QWidget* mWins;
public:
    LoadICommand(QWidget* widget, XXModel * model, int val);

    void redo() override;
    void undo() override;
};

//////////////////////////////////////////////////////////////
LoadCommand::LoadICommand(QWidget* widget, XXModel * model, int val): val(val), XXModel(model), QWidget(widget) 
{
/*新操作发生时 载入撤回or重做指令,压栈*/
/*读取原有属性*/
/*把目标值写入模型*/
}

void LoadImgEditConfigCommand::redo()
{
/*读取原有属性*/
/*把目标值写入模型*/
}

void LoadImgEditConfigCommand::undo()
{
/*读取原有属性*/
/*把目标值写入模型*/
}

 

posted @ 2021-06-15 22:12  linzMYN  阅读(143)  评论(0)    收藏  举报
-------