2010-07-16 3 views
3

같은, 나는 QDialogButtonBox 위젯으로 인 QDialog를 가지고 있고, 나는 내 인 QDialog의 하위 클래스에서 슬롯에있는 버튼 상자의 승인 신호를 연결 한 :QDialogButtonBox를 부모 QDialog를 닫지 않게 만드는 방법은 무엇입니까?

void MyDialog::on_buttonBox_accepted() 
{ 
    QString errorString = this->inputErrorString(); 
    if (errorString.isEmpty()) 
    { 
     // Do work here 
     // code code code... 

     this->accept(); 
    } 
    else 
    { 
     QMessageBox::critical(this, tr("Error"), tr("The following input errors have occurred:") + errorString); 
    } 
} 

그러나, 대화는 메시지 상자가 후 종료 표시; 분명히 버튼 상자는 자동으로 받아 들인 신호를 QDialog의 accept 슬롯에 연결합니다 (나는 그 슬롯을 수동으로 호출하고 싶습니다). 이를 방지하려면 어떻게해야합니까 위에서 설명한 수동 접근 방식을 취할 수 있습니까?

+0

질문은 모호한 것처럼 보입니다. 샘플 예제를 만들고 전체 코드를 게시 할 수 있습니까? – Naruto

답변

14

MyDialog :: accept()를 구현할 수 있습니다. 함수는 QDialog에서 가상입니다.

+0

우수함, 내가 필요한 것 - 감사합니다! –

+0

QDialog :: accept();를 호출하십시오. 이 오버로드 된 함수 내부에서 받아들이거나 반환합니다. 대화 상자를 계속 실행합니다. –

관련 문제