2012-02-04 6 views
3

У меня есть компонент QML-меню, который я бы хотел разместить в верхней части каждого и каждого из моих представлений и вроде синхронизации, чтобы он выглядел типичного меню веб-страницы. Как мне это сделать, пожалуйста,Как разместить компонент в верхней части всех моих представлений QML

import QtQuick 1.0 

Row { 
    width: 500 
    height: 50 
    anchors.centerIn: parent 
    spacing: parent.width/6 

    Button { 
     id: loadButton 
     text: qsTr("Menu") 
    } 
    Button { 
     id: saveButton 
     text: qsTr("Profile") 
    } 
    Button { 
     id: exitButton 
     text: qsTr("View Products") 
    } 

} 

ответ

2

С QML все должно быть в контейнере, чтобы выровнять все с ним. В этом случае, если вы пытаетесь создать пучок кнопок в меню/строке, вам нужно, чтобы это всегда было в верхней части каждого контейнера, который вы его помещали.

IE, поставьте свой выше все в файле под названием «Menu.qml». Затем в программе каждое место, куда вы хотите, чтобы меню появится, сделать ограничивающий прямоугольник (или любой другой) и закрепить меню вверх:

Rectangle { 
    Menu { id: menu; anchor.top: parent.top; anchor.left: parent.left; } 

    // put other stuff here 
    Rectangle { anchor.top: menu.bottom; } 
} 

Если вы, что для каждого объекта, который будет отображаться, то вы хорошо пойти!

В качестве другого примера, в PageStack, сделайте каждую страницу включенной вверху.

6

Подробнее о "z" собственности QDeclarativeItem или QML Item. Ответ заключается в том, чтобы придать вашему компоненту компонента компонента наивысшее значение z.

MyMenu 
{ 
    z: 100 

    ... 
} 

Rectangle 
{ 
    z: 1 

    ... 
} 

Средство рендеринга qml принимает решение об этих значениях, которые элементы рисуют первым; и в случае чего-то, накладывающегося на ваше меню, оно закончится ниже. Кстати, значение по умолчанию z равно 0, поэтому все они одинаковы и более или менее неопределены, в каком порядке он отображается.

Удачи!

+0

, добавив этот код в PropertyChanges, это не работает. –

+0

Не забудьте использовать атрибут 'target', то есть: PropertyChanges {target: menuItem; z: 100} – muenalan