Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can set pop-up menu position in QML

I want to fix the position of pop-up menu in QML. When I click on a setting button,I want the pop-up menu will display at the fixed position. I did it by a day but can't. How can I do it in QML. Also, I want to change the size of menu item(width and Height).

Hope your help!

like image 553
KidNg Avatar asked Oct 30 '22 23:10

KidNg


1 Answers

That depends on QtQuick.Controls version.

In 2.0 you can define size and position(and even more - you must do)

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 }
    }
}

In 1.4 (see commented lines) you can try Menu.__popup() but this function is private and the behavior is unpredictable.

like image 72
folibis Avatar answered Nov 08 '22 08:11

folibis