Лучшая практика для приложения Qt с несколькими пользовательскими интерфейсами в C ++ - PullRequest
5 голосов
/ 02 июля 2010

Дело в следующем:

У вас есть главное окно (ui1), которое должно содержать два других интерфейса (ui2 и ui3). Ни ui2, ни ui3 не заботятся ни о каком другом пользовательском интерфейсе. У них есть только слоты, на которые можно реагировать, и они также могут излучать сигналы. См. Рисунок ниже.

+----------------------------+
| +------+        +------+   |
| |      |        |      |   |
| |      |        |      |   |
| |      |        |      |   |
| |   ui2|        |   ui3|   |
| +------+        +------+   |
|                            |
|                        ui1 |
+----------------------------+

ui1 загружается классом AppWindow и используется так:

...
int main(int argc, char *argv[])
{
    CustomApp app(argc,argv);

    AppWindow w;
    w.show();

    return app.exec();
}

Каков рекомендуемый способ создания класса AppWindow? Любой простой пример?

Спасибо

1 Ответ

7 голосов
/ 02 июля 2010

При создании ui1 перетащите два основных виджета (т.е. QWidget) в пользовательский интерфейс. Затем в конструкторе вы можете щелкнуть правой кнопкой мыши и выбрать Promote To .... В этом диалоге укажите «Имя продвигаемого класса» и «Файл заголовка», которые соответствуют ui2 и ui3.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...