撤消后触发重做

时间:2012-10-24 03:53:54

标签: c++ qt undo slot redo

我正在尝试将其设置为只有在使用撤消后才能看到重做的地方。我似乎无法让它发挥作用。我知道我的信号和插槽有问题我只是想弄清楚如何让它工作。

这里是撤消和重做信号槽的代码:

    cutAct->setEnabled(false);
    copyAct->setEnabled(false);
    undoAct->setVisible(false);
    redoAct->setVisible(false);
    connect(textEdit, SIGNAL(copyAvailable(bool)), cutAct, SLOT(setEnabled(bool)));
    connect(textEdit, SIGNAL(copyAvailable(bool)), copyAct, SLOT(setEnabled(bool)));
    connect(textEdit->document(), SIGNAL(modificationChanged(bool)), undoAct, SLOT(setVisible(bool)));
    connect(undoAct, SIGNAL(triggered()), redoAct, SLOT(setVisible(bool)));

1 个答案:

答案 0 :(得分:2)

ui->undoBtn->setEnabled(false);
ui->redoBtn->setEnabled(false);
connect(ui->textEdit,SIGNAL(redoAvailable(bool)),ui->redoBtn,SLOT(setEnabled(bool)));
connect(ui->textEdit,SIGNAL(undoAvailable(bool)),ui->undoBtn,SLOT(setEnabled(bool)));

将它放在构造函数中,当对它们采取行动时,撤消和重做按钮将变为可用