如何在 QML 中设置弹出菜单位置

Kid*_*dNg 5 menu popupmenu qml qt5

我想修复 QML 中弹出菜单的位置。当我点击设置按钮时,我希望弹出菜单显示在固定位置。我做了一天,但不能。我怎样才能在 QML 中做到这一点。另外,我想更改菜单项的大小(宽度和高度)。

希望您的帮助!

fol*_*bis 2

这取决于QtQuick.Controls版本。

2.0可以定义大小和位置(甚至更多 - 您必须这样做)

import QtQuick 2.7
import QtQuick.Controls 2.0
//import QtQuick.Controls 1.4
import QtQuick.Window 2.0

Window
{
    id: window
    width: 500
    height: 500
    visible: true

    MouseArea {
        anchors.fill: parent
        onClicked: {
            menu.x = (window.width - menu.width) / 2
            menu.y = (window.height - menu.height) / 2
            //menu.__popup(Qt.rect(200,200,100,100),0,0);
            menu.open();
        }
    }

    Menu {
        id: menu
        MenuItem { text: "item1" }
        MenuItem { text: "item2"; }
        MenuItem { text: "item3"; height: 100 }
    }
}
Run Code Online (Sandbox Code Playgroud)

1.4(参见注释行)中,您可以尝试Menu.__popup(),但此函数是私有的,并且行为是不可预测的。