https://doc.qt.io/qt-5/qml-qtquick-controls2-menubar.html
在ApplicationWindow
中支持MenuBar,而在Window
中不支持。
下面抛出一个错误";无效的属性名称:MenuBar">
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
之间有什么区别?在哪种情况下应该使用哪一个?
文档非常清晰:
ApplicationWindow是一个窗口,它以独立于平台的方式为定位MenuBar、ToolBar和StatusBar等项增加了便利。
也就是说,它是一个从Window继承但具有某些默认属性的项,在QWidget方面与QMainWindow类似。
当你说:在新的Qt 5.12版本中,默认代码使用Window,而不是ApplicationWindow我想你的意思是QtCreator在创建项目时默认使用Window,这只是因为开发人员想要,而且没有科学依据,只是一种选择。
您应该何时使用其中一个取决于您想要自定义的时间,以及您是否对ApplicationWindow结构感到满意,因为正如您所看到的,后者有一个预定义的结构。
注意:有两个项目称为ApplicationWindow1,2