2012-11-20 2 views
0

내 프로젝트에 QMessageBox를 사용하고 있습니다. 경고/정보 용입니다. 예 : 일부 유효성 검사를 누른 다음 QMessageBox :: information (...)을 사용하고 있거나 특정 페이지를 벗어나지 않도록 사용자를 제한하려면 QMessageBox :: critical (...)을 사용하고 있습니다. "qDebug 출력을 파일로 리디렉션하는 방법"을 알고 있습니다. QMessagebox에서도 동일한 작업을 수행하고 싶습니다. 그래서 나는 내 프로젝트 폴더에 텍스트 파일을 유지할 것이다. 사용자가 QMessagebox를 통해 메시지를 만날 경우 응용 프로그램이 실행될 때마다 해당 텍스트 파일로 리디렉션됩니다. 응용 프로그램을 닫은 후 사용자는 응용 프로그램을 실행하는 동안 발생한 모든 messagedetails 목록을 갖습니다.QMessageBox 텍스트를 텍스트 파일로 리디렉션하는 방법

이 코드를 작성하는 데 도움주세요 ..

감사합니다.

답변

1

원본 QMessageBox를 표시하고 기록 할 항목을 쓰는 정적 정보, 경고 및 중요 기능을 선언 할 수 있습니다.

static StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons = Ok, StandardButton defaultButton = NoButton); 

StandardButton information(QWidget *parent, const QString &title, const QString &text, StandardButtons buttons, StandardButton defaultButton) 
{ 
    qDebug() << "writing to log"; 
    return QMessageBox::information (parent, title, text, buttons, defaultButton) 
} 
+0

qInstallMsgHandler (..) 같은 것이 있습니까? 많은 시간 동안 내 프로젝트에서이 QMessagebox()를 사용했기 때문에 프로젝트에서 많은 변경 작업을 수행해야합니다. 대체 솔루션을 좀 제공해 주실 수 있습니까? 감사를 많이 ... 답장을 위해 ... – Kenta

+0

행크가 맞고 답을 얻었습니다. QtCreator'refactoring'에서 빌드를 사용하여 모든 QMessageBox 등을 쉽게 변경할 수 있습니다 - 단어 (변수, 유형, ...)를 마우스 오른쪽 버튼으로 클릭하고 '리팩토링'을 선택한 다음 원하는 것을 선택하십시오. 필자는 cursor 아래에있는 심볼의 이름을 바꾸는 데 매우 유용한 'ctrl + shift + R' 기능이 있습니다. 시도 해봐. – troyane

관련 문제