Несколько экземпляров QMainWindow? - PullRequest
23 голосов
/ 25 ноября 2008

QMainWindow - это главное окно в приложении Qt. Поэтому обычно у вас есть только один, но можно ли вообще иметь несколько QMainWindow экземпляров в вашем приложении?

Я работаю над интеграцией приложения GUI на основе Qt B в другое приложение GUI на основе Qt A . Оба этих приложения имеют QMainWindow, и я рассматривал в качестве первого шага создание нового QMainWindow, который имеет оба старых QMainWindows на вкладках. Таким образом, это позволило бы мне сосредоточиться на подключении бэкэнда GUI B к бэкенду A без необходимости что-либо менять в самом пользовательском интерфейсе. Это жизнеспособный подход, или у вас есть другие предложения?

1 Ответ

32 голосов
/ 26 ноября 2008

Вы можете иметь столько экземпляров QMainWindow, сколько захотите. A QMainWindow - это просто QWidget, который предоставляет строку меню, панель инструментов, строку состояния и структуру стыковки. Но в основном это просто QWidget, поэтому вы можете иметь столько, сколько захотите.

Как правило, у вас есть только один QMainWindow по причинам, связанным с дизайном графического интерфейса, так как наличие нескольких основных окон может быть затруднительным Однако при реализации таких приложений, как QtAssistant, которые могут открывать новый экземпляр самих себя, один процесс имеет несколько основных окон.

То, что вы предлагаете, должно работать. Окно с вкладками не обязательно должно быть QMainWindow, если вы не хотите также добавить панель инструментов в это окно.

...