2013-05-15 1 views
1

은이 코드를 사용하여 메시지 상자를 표시합니다. 어떻게해야합니까?정적 메서드 QMessageBox :: information()을 사용할 때 QMessageBox의 제목 표시 줄을 제거 하시겠습니까? 예상대로</p> <pre><code>int ret = QMessageBox::question(this,"Title","Stupid code",QMessageBox::Yes | QMessageBox::No); </code></pre> <p>모든 작품,하지만 지금은, 내가 메시지 상자의 제목 표시 줄을 제거하려면 :

나는 사용하지 않습니다

QMessageBox msgBox("Title" , "Stupid code", QMessageBox::Question, QMessageBox::Yes | QMessageBox::No, this, Qt::FramelessWindowHint); 
msgBox.exec(); 
+1

QMessageBox를 사용해 보셨습니까 ("", "바보 같은 코드", QMessageBox :: 질문, QMessageBox :: 예 | QMessageBox :: 아니요, Qt :: FramelessWindowHint); – Arun

+0

나는 그것을 원하지 않는다. (나는 p/s에서 말했다.) @ _ @ – PhiVH

+1

@Arun이 제안한 방법을 사용하고 싶지 않은 이유는 무엇입니까? – TheDarkKnight

답변

1

난 당신이 QMessageBox::question() 같은 인수를 받아들이는, 정적 멤버 함수 question()하여 자신의 XMessageBox 클래스를 작성하여 래퍼 함수를 ​​만들 것을 제안합니다. 래퍼 함수에서 함수에 주어진 인수가있는 QMessageBox 개체를 만들고 Qt::FramelessWindowHint 플래그를 호출하고 exec()을 호출하고 반환 값을 전달합니다. 이렇게하면 QMessageBox::question의 모든 항목을 검색하여 코드에서 XMessageBox::question으로 바꾸기 만하면됩니다.

question() 함수에서 더 많은 인수를 Qt::WindowFlags 유형으로 허용하고이를 QMessageBox 생성자로 전달할 수 있습니다.

코드를 변경하지 않고 원하는 것을 할 수있는 유일한 방법은 Qt 코드 (qmessagebox.cpp)를 변경하고 Qt를 다시 컴파일하는 것입니다.

관련 문제