2012-10-24 61 views
2

我正在嘗試使其在重做僅在使用撤消後纔可見的位置。我似乎無法得到它的工作。我知道我的信號和插槽有問題,我不知道如何使其工作。撤消後觸發重做

這裏是撤消的代碼和重做信號插槽:

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))); 
+0

一般動作,SIGNAL中的參數可能不會少於(或不同)SLOT中的參數。你應該在命令行中發出警告,說出類似的話。除此之外,opc0de的答案應該是解決您的問題。 –

回答

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))); 

把它放在構造函數和撤消和重做按鈕將變爲可用時,對他們來說是

+0

非常感謝您的幫助。它工作得很好:) – zachstarnes