Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

QML anchors to ApplicationWindow via id not work

Tags:

c++

qt

qml

I test a simple QML(Qt sdk version 5.3.2) program like this

import QtQuick 2.3
import QtQuick.Controls 1.2

ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    id: appWin

    Text {
        text: qsTr("Hello World")
        anchors.bottom: parent.bottom
    }
}

I want the text will be layed on the bottom of application window, that's work. But if I change anchors.bottom: parent.bottom to anchors.bottom: appWin.bottom (via id), anchors not work anymore, is this a bug?

like image 779
secmask Avatar asked Sep 29 '14 11:09

secmask


1 Answers

ApplicationWindow does not ultimately derive from Item, so it does not have an anchors property that's why using the window's id does not work. So why does using parent? Because the children you define in an ApplicationWindow become children of an intermediate Item called contentItem:

If you assign an Item to the data list, it becomes a child of the Window's contentItem, so that it appears inside the window. The item's parent will be the window's contentItem, which is the root of the Item ownership tree within that Window. ... It should not generally be necessary to refer to the data property, as it is the default property for Window and thus all child items are automatically assigned to this property.

like image 165
cmannett85 Avatar answered Oct 03 '22 03:10

cmannett85