2012-03-26 4 views
1

Я ученик программист, использующий Qt для создания интерфейса GUI для моей компании. В настоящее время я создаю таблицу чтения, которая считывает данные и соответствующим образом разделяет ее на тип файла. Anywho; когда выбрано определенное расширение файла, у меня есть экран окна сообщений для выбора типа данных в этом файле. В настоящее время в окне сообщений отображаются все кнопки, сложенные слева направо, и выглядит немного глупо. Я хочу, чтобы они либо стекали сверху вниз еще лучше стек 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 (с двумя QDialogButtonBox).

6

Абсолютно вам нужен QDialog, а не QMessageBox, потому что вы не можете управлять макетом QMessageBox.

Используя QDialog и используя сетку, как вам нужна сетка 2X2, вы можете встретить решение. Кроме того, вы можете получить любую функциональность, которую может иметь QMessageBox.