Javascript 如何将组件定位在所有QML视图的顶部
我有一个QML菜单组件,我想把它放在我的每个视图和每个视图的顶部,并进行某种同步,这样它就有了典型网页菜单的外观和感觉。请问我该怎么做Javascript 如何将组件定位在所有QML视图的顶部,javascript,qt,qml,Javascript,Qt,Qml,我有一个QML菜单组件,我想把它放在我的每个视图和每个视图的顶部,并进行某种同步,这样它就有了典型网页菜单的外观和感觉。请问我该怎么做 import QtQuick 1.0 Row { width: 500 height: 50 anchors.centerIn: parent spacing: parent.width/6 Button { id: loadButton text: qsTr("Menu")
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")
}
}
有了QML,所有东西都需要放在一个容器中,以便将所有东西与之对齐。在这种情况下,如果您试图将一组按钮构建到一个菜单/行中,那么您需要将其始终放在每个页面的顶部,就像您将其放入的容器一样 也就是说,将上述内容全部放在一个名为“Menu.qml”的文件中。然后在程序中,在希望菜单出现的每个位置,制作一个封闭的矩形(或任何形状),并将菜单定位到顶部:
Rectangle {
Menu { id: menu; anchor.top: parent.top; anchor.left: parent.left; }
// put other stuff here
Rectangle { anchor.top: menu.bottom; }
}
如果你对每个将出现的对象都这样做,那么你就可以开始了
另一个例子是,在页面堆栈中,使每个页面都包含在顶部。阅读关于“z”属性QDeclarativeItem或QML项的信息。答案是为菜单组件实例提供最高的z值
MyMenu
{
z: 100
...
}
Rectangle
{
z: 1
...
}
qml渲染器根据该值决定首先绘制哪些项目;如果有什么东西覆盖了你的菜单,它会在它下面结束。顺便说一下,默认的z值是0,因此所有的z值都是相同的,并且或多或少没有定义渲染顺序
祝你好运 不要忘记使用'target'属性,即:PropertyChanges{target:menuItem;z:100}在QML中,文件底部的元素放在前面的元素的顶部。按照这种逻辑,在您的示例中,菜单将显示在所有其他元素的下面。我怀疑是否有人会喜欢那样。