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

时间:2016-07-26 02:12:38

标签: menu qml qt5 popupmenu

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

希望你的帮助!

1 个答案:

答案 0 :(得分: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 }
    }
}

1.4(请参阅注释行)中,您可以尝试Menu.__popup(),但此功能是私有的,行为无法预测。