2012-03-26 5 views
1

저는 회사 프로그래머로서 Qt를 사용하여 회사의 GUI 인터페이스를 구축하고 있습니다. 현재 데이터를 읽고 파일 유형에 따라 적절하게 구분하는 독자 테이블을 작성 중입니다. 아무도; 특정 파일 확장명을 선택하면이 파일에있는 데이터 유형을 선택하기위한 메시지 상자 표시가 나타납니다. 현재 메시지 상자는 왼쪽에서 오른쪽으로 쌓인 모든 단추를 보여 주며 다소 바보처럼 보입니다. 나는 그들이 더 나은 스택 2x2의 위에서 아래로 스택 싶어요. 나는 QMessageBox documentation을 통해보고 있었고 이것을 할 수있는 방법을 찾지 못하는 것 같습니다. 나는 그것이 존재해야만한다는 것을 안다. 나는 그것을 찾는 데 도움이 필요하다. 현재이 메시지 상자의 대구는 다음과 같습니다.QMessageBox; 버튼 레이아웃

  QMessageBox templateSelectorWindow; 
      QPushButton * pressureBC =templateSelectorWindow.addButton("Pressure Boundry Condition", QMessageBox::AcceptRole); 
      QPushButton * flowBC = templateSelectorWindow.addButton("Flow Boundry Condition", QMessageBox::AcceptRole); 
      QPushButton * massFlowBC = templateSelectorWindow.addButton("Mass Flow Boundry Condition", QMessageBox::AcceptRole); 
      QPushButton * thermalWallBC = templateSelectorWindow.addButton("Thermal Wall Boundry Condition", QMessageBox::AcceptRole); 
      QPushButton * cancelButton = overwriteWarning.addButton("Cancel", QMessageBox::RejectRole); 
      templateSelectorWindow.setWindowTitle("Input File Type"); 
      templateSelectorWindow.setText("Input Files Require You Select The Input File Type:"); 
      templateSelectorWindow.setInformativeText("Please select the the input type from the following"); 
      templateSelectorWindow.exec(); 

현재이 창은 다음과 같습니다 enter image description here

그래서 내가 여기 레이아웃을 변경하려면 왜 당신이 볼 수있는 것을 알고있다. 내 게시물을 읽어 주셔서 감사합니다! 이 문제를 해결하는 데 도움이 될 수있는 도움에 미리 감사드립니다.

답변

8

QDialog를 확장하는 대화 상자를 직접 만들려면 버튼 레이아웃에 QDialogButtonBox을 사용하고이를 사용자 지정 QDialog에 위젯으로 추가해야합니다.

QmessageBox를 사용하면 단추 방향을 변경할 수 없습니다. 그리고 2x2 디스플레이를 원한다면 layouts (2 개의 QDialogButtonBox 포함)의 조합으로 조금 더 플레이해야 할 것입니다.

6

QMessageBox의 레이아웃을 제어 할 수 없기 때문에 QMessageBox가 아닌 QDialog가 필요합니다.

QDialog를 사용하고 그리드 레이아웃을 사용하면 2X2의 그리드가 필요하므로 솔루션을 만날 수 있습니다. 그 외에 QMessageBox가 가질 수있는 모든 기능을 사용할 수 있습니다.