2012-02-04 9 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; } 
} 

あなたがして表示されますすべてのオブジェクトのためにあなたがしていることを行うと行ってもいい!

もう1つの例として、PageStackでは、各ページに上部にそのページを含めます。

6

"z"プロパティQDeclarativeItemまたはQML Itemについて読んでください。答えは、メニューコンポーネントのインスタンスに最高のz値を与えることです。

MyMenu 
{ 
    z: 100 

    ... 
} 

Rectangle 
{ 
    z: 1 

    ... 
} 

qmlレンダラーは、最初にどの項目を描画するかをこの値で決定します。あなたのメニューの上に何かが重なっている場合、それはその下で終了します。ちなみに、デフォルトのz値は0なので、すべてが同じで、レンダリングされる順番は多少なりとも不定です。

Good Luck!

+0

このコードをPropertyChangesに追加すると、機能しない.. –

+0

'target'属性を使用することを忘れないでください。PropertyChanges {target:menuItem; z:100} – muenalan

関連する問題