QMessageBox;макеты кнопок - PullRequest
1 голос
/ 26 марта 2012

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

, поэтому вы можете понять, почему я хочу изменить макетВот.Спасибо, что прочитали мой пост!Заранее благодарим за любую помощь, вы можете внести свой вклад в преодоление этой проблемы.

Ответы [ 2 ]

8 голосов
/ 26 марта 2012

Для этого вам нужно будет создать собственный диалог, расширяющий QDialog, используйте QDialogButtonBox для макета кнопок и добавьте его в качестве виджета в свой собственный QDialog.

Использование QmessageBox не позволит вам изменить ориентацию кнопок. А если вам нужен дисплей 2x2, вам придется играть немного больше с комбинацией макетов (с двумя QDialogButtonBox).

6 голосов
/ 26 марта 2012

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

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

...