Я делаю свои первые шаги с Qt. В качестве упражнения я пишу графический интерфейс для многоядерного процессора, и отдельные ядра показаны в отдельном окне. От этого окна может быть несколько копий, со своей самостоятельной жизнью, включая меню, статусную строку и т.д. То есть они по сути как QMainWindow, но имеющие QMoreMainWindow :). Может ли быть какой-либо побочный эффект, если я использую QMainWindow несколько раз?
Что использовать с Qt для независимых окон: QDialog, QWindow или QMainWindow?
Ответы (2)
Ничто не мешает вам использовать любой из них для чего угодно. У них разные роли и свойства:
QMainWindow
— это просто главное окно. Он имеет панель инструментов, док-виджеты, строку меню, строку состояния и центральный виджет. Если вам не нужны все (большинство) этих вещей, вам явно не нуженQMainWindow
.QWindow
— это базовый объект, который полезен, если вы не хотите /нужна функциональностьQWidget
.QDialog
предназначен для всплывающих окон (т. е. "диалогов "), как окно сообщений или диалоговое окно открытия файла.QWidget
— основное окно или элемент окна. Если сомневаетесь, используйте это.
Читая ваш вопрос, кажется, вы хотите, чтобы каждое из этих окон было QMainWindow
. Примечание. На вашем месте я бы все же предпочел кастомный QWidget
только с теми деталями, которые мне нужны. Добавление строки состояния и меню — это не так уж много кода.
несколько основных окон вообще не проблема. Я также использую их в своем приложении, и они отлично работают. Вы можете либо иметь главные окна отдельно (без родителя), либо зависеть от какого-либо главного главного окна, чтобы они закрывались при закрытии основного главного окна.
Когда ваши основные окна имеют независимые жизни и меню, строки состояния и т. д., это еще больше говорит о нескольких главных окнах, которым, вероятно, не должен быть назначен родительский элемент.
Так что, да, ваш подход кажется мне вполне приемлемым.