Menu QML Type
ネイティブメニュー。詳細...
| Import Statement: | import Qt.labs.platform |
| Inherits: |
プロパティ
- data : list<QtObject>
- enabled : bool
- font : font
- icon
(since Qt.labs.platform 1.1 (Qt 5.12))- icon.mask : bool
(since Qt.labs.platform 1.1 (Qt 5.12)) - icon.name : string
(since Qt.labs.platform 1.1 (Qt 5.12)) - icon.source : url
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon.mask : bool
- items : list<MenuItem>
- menuBar : MenuBar
- menuItem : MenuItem
- minimumWidth : int
- parentMenu : Menu
- systemTrayIcon : SystemTrayIcon
- title : string
- type : enumeration
- visible : bool
信号
方法
- void addItem(MenuItem item)
- void addMenu(Menu submenu)
- void clear()
- void close()
- void insertItem(int index, MenuItem item)
- void insertMenu(int index, Menu submenu)
- void open(MenuItem item)
- void open(Item target, MenuItem item)
- void removeItem(MenuItem item)
- void removeMenu(Menu submenu)
詳細説明
Menu タイプは、ネイティブプラットフォームのメニューポップアップ用の QML API を提供します。

Menuは、MenuBar 内で、あるいは独立したコンテキストメニューとして使用できます。以下の例は、マウスの右クリックでコンテキストメニューを開く方法を示しています:
MouseArea {
anchors.fill: parent
acceptedButtons: Qt.RightButton
onClicked: zoomMenu.open()
}
Menu {
id: zoomMenu
MenuItem {
text: qsTr("Zoom In")
shortcut: StandardKey.ZoomIn
onTriggered: zoomIn()
}
MenuItem {
text: qsTr("Zoom Out")
shortcut: StandardKey.ZoomOut
onTriggered: zoomOut()
}
}サブメニュー
サブメニューを作成するには、あるMenuの子として別のMenuを宣言します:
Menu {
title: qsTr("Edit")
Menu {
title: qsTr("Advanced")
MenuItem {
text: qsTr("Auto-indent Selection")
onTriggered: autoIndentSelection()
}
MenuItem {
text: qsTr("Rewrap Paragraph")
onTriggered: rewrapParagraph()
}
}
}メニュー項目の動的生成
Instantiator を使用すると、メニュー項目を動的に生成できます。以下のコードは、設定に保存されたファイルのリストから項目を取得する「最近のファイル」サブメニューを実装する方法を示しています:
Menu {
title: qsTr("File")
Menu {
id: recentFilesMenu
title: qsTr("Recent Files")
enabled: recentFilesInstantiator.count > 0
Instantiator {
id: recentFilesInstantiator
model: settings.recentFiles
delegate: MenuItem {
text: settings.displayableFilePath(modelData)
onTriggered: loadFile(modelData)
}
onObjectAdded: (index, object) => recentFilesMenu.insertItem(index, object)
onObjectRemoved: (index, object) => recentFilesMenu.removeItem(object)
}
MenuSeparator {}
MenuItem {
text: qsTr("Clear Recent Files")
onTriggered: settings.clearRecentFiles()
}
}
}利用可能プラットフォーム
ネイティブプラットフォームメニューは現在、以下のプラットフォームで利用可能です:
- macOS
- iOS
- Android
- Linux(GTK+プラットフォームテーマで実行する場合に限り、スタンドアロンのコンテキストメニューとして利用可能)
Qt Labs Platform モジュールは、ネイティブの実装が利用できないプラットフォームにおいて、フォールバックとしてQt Widgets を使用します。したがって、Qt Labs Platform モジュールの型を使用するアプリケーションは、QtWidgets にリンクし、QGuiApplication の代わりにQApplication を使用する必要があります。
QtWidgets ライブラリに対してリンクするには、qmakeプロジェクトファイルに以下を追加してください:
QT += widgetsmain() 内でQApplication のインスタンスを作成します:
#include <QApplication>
#include <QQmlApplicationEngine>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
return app.exec();
}注: Qt.labsモジュール内の型は、将来のバージョンでも互換性が維持されるとは限りません。
MenuItem 、MenuSeparator 、およびMenuBarも参照してください 。
プロパティのドキュメント
data : list<QtObject> [default]
このデフォルトのプロパティには、メニューの子として宣言されたすべてのオブジェクトのリストが格納されます。data プロパティには、Timer やQtObject など、MenuItem のインスタンスではないオブジェクトも含まれます。
「items」も参照してください 。
enabled : bool
このプロパティは、メニューが有効かどうかを表します。デフォルト値はtrue です。
font : font
このプロパティは、メニューのフォントを指定します。
「title」も参照してください 。
icon group
icon.mask : bool [since Qt.labs.platform 1.1 (Qt 5.12)]
icon.name : string [since Qt.labs.platform 1.1 (Qt 5.12)]
icon.source : url [since Qt.labs.platform 1.1 (Qt 5.12)]
このプロパティには、メニュー項目のアイコンが格納されます。
これらのプロパティは、Qt Labs Platform 1.1 (Qt 5.12) で導入されました。
items : list<MenuItem>
このプロパティには、メニュー内の項目のリストが格納されています。
menuBar : MenuBar [read-only]
このプロパティには、そのメニューが属するメニューバーが格納されます。メニューがメニューバーに表示されていない場合は、null が格納されます。
menuItem : MenuItem [read-only]
このプロパティには、(親メニュー内の)メニューを表示するアイテムが格納されます。
minimumWidth : int
このプロパティは、メニューの最小幅を指定します。デフォルト値は-1 (最小幅なし)です。
parentMenu : Menu [read-only]
このプロパティには、そのメニューが属する親メニューが格納されます。ただし、そのメニューがサブメニューでない場合は、null が格納されます。
systemTrayIcon : SystemTrayIcon [read-only]
このプロパティには、そのメニューが属するシステムトレイアイコンが格納されます。メニューがシステムトレイアイコンに属していない場合は、null が格納されます。
title : string
このプロパティには、メニューのタイトルが格納されます。
type : enumeration
このプロパティは、メニューの型を保持します。
使用可能な値:
| 定数 | 説明 |
|---|---|
Menu.DefaultMenu | 通常のメニュー(デフォルト)。 |
Menu.EditMenu | 「切り取り」、「コピー」、「貼り付け」の項目があらかじめ設定された編集メニュー。 |
visible : bool
このプロパティは、メニューが表示されているかどうかを表します。デフォルト値はtrue です。
シグナルのドキュメント
aboutToHide()
このシグナルは、メニューがユーザーから非表示になろうとする際に発せられます。
注: 対応するハンドラは onAboutToHide です。
aboutToShow()
このシグナルは、ユーザーにメニューが表示されようとする際に発せられます。
注: 対応するハンドラは onAboutToShow です。
メソッドのドキュメント
void addItem(MenuItem item)
メニューの最後に「item 」を追加します。
void addMenu(Menu submenu)
メニューの最後に「submenu 」を追加します。
void clear()
メニューからすべての項目を削除します。
void close()
メニューを閉じます。
void insertItem(int index, MenuItem item)
メニュー内の指定されたindex に「item 」を挿入します。
void insertMenu(int index, Menu submenu)
メニュー内の指定されたindex に、submenu を挿入します。
void open(MenuItem item)
マウスの現在位置にメニューを開きます。必要に応じて、メニューをitem に合わせることができます。
void open(Item target, MenuItem item)
指定されたtarget 項目でメニューを開き、必要に応じてメニューのitem に合わせて配置します。
void removeItem(MenuItem item)
メニューから「item 」を削除します。
void removeMenu(Menu submenu)
メニューから「submenu 」を削除します。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.