Как установить позицию всплывающего меню в QML

Я хочу исправить положение всплывающего меню в QML. Когда я нажимаю на кнопку настройки, я хочу, чтобы всплывающее меню отображалось в фиксированном положении. Я сделал это за день, но не могу. Как я могу сделать это в QML. Также я хочу изменить размер пункта меню (ширина и высота).

Надеюсь на вашу помощь!

1 ответ

Это зависит от 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() но эта функция является частной, а поведение непредсказуемым.

Другие вопросы по тегам