Несколько экземпляров QMainWindow?
-
11-07-2019 - |
Вопрос
QMainWindow
является главным окном в приложении Qt. Поэтому обычно у вас есть только один, но можно ли вообще иметь несколько экземпляров QMainWindow
в вашем приложении? Р>
Я работаю над интеграцией приложения GUI на основе Qt B в другое приложение GUI на основе Qt A . Оба этих приложения имеют QMainWindow
, и я рассматривал в качестве первого шага создание нового QMainWindow
, в котором есть оба старых QMainWindows
на вкладках. Таким образом, это позволило бы мне сконцентрироваться на подключении серверной части GUI B к серверной части A без необходимости что-либо менять в самом пользовательском интерфейсе. Это жизнеспособный подход, или у вас есть другие предложения?
Решение
Вы можете иметь столько экземпляров QMainWindow
, сколько пожелаете. QMainWindow
- это просто QWidget
, который предоставляет строку меню, панель инструментов, строку состояния и структуру закрепления. Но в основном это просто QWidget
, поэтому вы можете иметь столько, сколько захотите.
Обычно у вас есть только один QMainWindow
по причинам, связанным с дизайном графического интерфейса, поскольку может быть непонятно, когда у вас несколько главных окон. Однако при реализации таких приложений, как QtAssistant
, которые могут открывать новый экземпляр самих себя, один процесс имеет несколько основных окон.
То, что вы предлагаете, должно работать. Окно с вкладками не обязательно должно быть QMainWindow
, если вы не хотите также добавить панель инструментов в это окно. Р>