Это зависит от версии 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()
но эта функция является приватным и поведение непредсказуемо.
Я использую версию 1.4. Я не могу установить ширину и высоту в MenuItem в обычном режиме. Но функция __popup в порядке. Ты спасаешь мой день! – KidNg
Я столкнулся с проблемой со всплывающим меню. Каждый раз, когда появляется всплывающее меню, увеличение памяти (~ 15 Мб на моем компьютере) и не уменьшается при закрытии меню. И приложение краш через много раз отображает меню. – KidNg
попробуйте использовать 'popup()'. это тоже увеличивает память? – folibis