2012-10-24 6 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

에 대한 조치가있을 때 사용할 수있게됩니다 버튼을 다시 , SLOT보다 SIGNAL에 덜 (또는 다른) 매개 변수가 없을 수도 있습니다. 명령 줄에 그런 식으로 경고해야합니다. 그 외에 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