Вопрос

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top