Aquarius_Girl
Aquarius_Girl

Reputation: 22906

Difference between Window and ApplicationWindow in QML?

https://doc.qt.io/qt-5/qml-qtquick-controls2-menubar.html

MenuBar is supported in ApplicationWindow and not in Window.

Following throws an error "Invalid property name: MenuBar"

Window
{
    visible: true
    width: 280; height: 280

    menuBar: MenuBar {
          Menu {}
    }
}

whereas following works:

ApplicationWindow
{
    visible: true
    width: 280; height: 280

    menuBar: MenuBar {
          Menu {}
    }
}

In the new Qt version 5.12, the default code uses Window and not ApplicationWindow.

What is the difference between Window and ApplicationWindow? Which one should be used in which case?

Upvotes: 5

Views: 6651

Answers (2)

Desarrollo U71X
Desarrollo U71X

Reputation: 1

it is just same comparing QMainWindow with QWidget.. QMainWindows is QWidget that higher level for creating more stuffs for you.. the same happens with ApplicationWindow and Window.

Upvotes: 0

eyllanesc
eyllanesc

Reputation: 243897

The docs is very clear:

ApplicationWindow is a Window that adds convenience for positioning items, such as MenuBar, ToolBar, and StatusBar in a platform independent manner.

That is, it is an item that inherits from Window but has certain default attributes, it is similar to QMainWindow with respect to QWidget.

When you say: In the new Qt version 5.12, the default code uses Window and not ApplicationWindow I suppose you mean that QtCreator uses Window by default in creating projects, that's just because the developers wanted to and there is no science in it, just a choice.

When you should use one or the other depends on when you want to customize and if you are comfortable with the ApplicationWindow structure since as you can see the latter has a predefined structure.

Note: There are 2 items called ApplicationWindow 1, 2

Upvotes: 8

Related Questions