#qt #qml #qtquick2 #qt5.12
#qt #qml #qtquick2 #qt5.12
Вопрос:
https://doc.qt.io/qt-5/qml-qtquick-controls2-menubar.html
Панель меню поддерживается в ApplicationWindow
, а не в Window
.
Следующее выдает ошибку «Недопустимое имя свойства: панель меню»
Window
{
visible: true
width: 280; height: 280
menuBar: MenuBar {
Menu {}
}
}
в то время как следующие работы:
ApplicationWindow
{
visible: true
width: 280; height: 280
menuBar: MenuBar {
Menu {}
}
}
В новой версии Qt 5.12 код по умолчанию использует Window
, а не ApplicationWindow
.
В чем разница между Window
и ApplicationWindow
? Какой из них следует использовать в каком случае?
Комментарии:
1.
Window
является базовым типом QML. Это просто окно.ApplicationWindow
является частью QtQuick Controls 2 и имеет ту же функциональность,QMainWindow
что и . Какой из них использовать, зависит от вас. Если вам нужно простое окно, используйтеWindow
. Если вам нужна расширенная функциональность, используйтеApplicationWindow
.
Ответ №1:
Документы очень понятны:
ApplicationWindow — это окно, которое добавляет удобства для позиционирования элементов, таких как панель меню, панель инструментов и строка состояния, независимым от платформы образом.
То есть это элемент, который наследуется от Window, но имеет определенные атрибуты по умолчанию, он похож на QMainWindow в отношении QWidget.
Когда вы говорите: в новой версии Qt 5.12 код по умолчанию использует Window, а не ApplicationWindow, я полагаю, вы имеете в виду, что QtCreator использует Window по умолчанию при создании проектов, это просто потому, что так захотели разработчики, и в этом нет науки, просто выбор.
Когда вы должны использовать тот или иной вариант, зависит от того, когда вы хотите настроить и устраивает ли вас структура ApplicationWindow, поскольку, как вы можете видеть, последняя имеет предопределенную структуру.
Примечание: Есть 2 элемента, называемые ApplicationWindow 1, 2
Комментарии:
1. Я благодарен вам. Не знал, что есть документы, в которых упоминается все это.
2. @Aquarius_Girl Что ж, в следующий раз вам придется читать и перечитывать документацию, поскольку многие ответы там есть.