2014-09-29 5 views
5
arbeiten

Ich teste eine einfache QML (Qt SDK-Version 5.3.2) Programm wie diesesQML Anker über ID Application nicht

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 
    } 
} 

ich den Text auf der Unterseite des Anwendungsfensters gelegt werden wollen, ist, dass die Arbeit . Aber wenn ich anchors.bottom: parent.bottom zu anchors.bottom: appWin.bottom (über ID) ändere, funktionieren Anker nicht mehr, ist das ein Fehler?

Antwort

7

ApplicationWindow leitet sich nicht zuletzt aus Item, so dass es nicht über eine anchors Eigenschaft, die ist, warum das Fenster des mit id funktioniert nicht. Warum also mit parent? Da die Kinder Sie in einem ApplicationWindowchildren of an intermediateItemcontentItem genannt werden definieren:

Wenn Sie einen Artikel auf die Datenliste zuweisen, wird es ein Kind des Fensters ContentItem, so dass es innerhalb des Fensters angezeigt wird. Das übergeordnete Element des Elements ist das contentItem des Fensters, das das Stammverzeichnis des Elements der Eigentümerstruktur in diesem Fenster ist. ... Normalerweise sollte nicht erforderlich sein, um auf die Eigenschaft data zu verweisen, da dies die Standardeigenschaft für Window ist und daher alle untergeordneten Elemente automatisch dieser Eigenschaft zugewiesen werden.

+0

danke, das stimmt. – secmask

-2

Dies wie ein Fehler aussieht, aber es kann nach folgenden docs nach Design sein:

Aus Performance-Gründen, können Sie nur ein Element auf seine Geschwister und direkt Eltern verankern

Es ist nicht wirklich klar, wie wir direct parent bei der Verankerung angeben können. Der QML-Übersetzer akzeptiert nur parent, um auf das übergeordnete qml-Element zu verweisen.

+0

Es ist kein Fehler, und Sie können die direkten Eltern angeben, indem Sie es "id" oder "Eltern" verwenden. – cmannett85

Verwandte Themen