私はQtquick GUIにポップアップメニューを追加しています(ここのように、私は信じています)、予想通りに動作しません。
これが私がすることです:
import QtQuick 2.7
import QtQuick.Layouts 1.3
import QtQuick.Window 2.2
import QtQuick.Controls 2.0
import QtQuick.Controls.Styles 1.2
ApplicationWindow
{
...
// File menu button.
Rectangle
{
id: ribbonFileMenuButton
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
width: height
height: parent.height
scale: ribbonFileMenuButtonMA.pressed ? 1.3 : 1
color: "transparent"
// Icon.
RibbonFileButtonIcon
{
id: ribbonFileMenuButtonIcon
anchors.fill: parent
}
// Behavior.
MouseArea
{
id: ribbonFileMenuButtonMA
anchors.fill: parent
onClicked: menu.open() /*popup()*/
}
}
...
// File.
Menu
{
id: menu
y: 20
MenuItem
{
text: "New..."
}
MenuItem
{
text: "Open..."
}
// MenuSeparator { }
MenuItem
{
text: "Save"
}
}
...
}
まず、 menu.popup()ではなくmenu.open( )を呼び出す必要があります (上記のリンクに示されているドキュメントで説明されているように): menu.popup()はエラーを出力します:
TypeError: オブジェクト QQuickMenu(0x20f40f0) のプロパティ 'popup' は関数ではありません
次に、MenuseParator {}を除外した場合、次のエラーが発生します。
MenuSeparator はタイプではありません
繰り返しますが、提供されたリンクのドキュメントによると、動作するはずです。
ネットで調べたのですが、ちょっと迷いました…
ありがとう、
アントワーヌ。