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
- アンドロイド
- Linux(GTK+プラットフォーム・テーマで動作している場合、スタンドアロンのコンテキスト・メニューとしてのみ利用可能)
Qt Labs Platform モジュールは、ネイティブ実装が利用できないプラットフォームでは、フォールバックとしてQt Widgets を使用します。したがって、Qt Labs Platform モジュールの型を使用するアプリケーションは、QtWidgets にリンクし、QGuiApplication の代わりにQApplication を使用する必要があります。
QtWidgets ライブラリにリンクするには、qmake プロジェクトファイルに以下を追加します:
QT += widgets
main()
に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も参照して ください。
プロパティ ドキュメント
enabled : bool |
このプロパティは、メニューが有効かどうかを保持する。デフォルト値はtrue
である。
このプロパティは、メニュー項目のアイコンを保持します。
この QML プロパティは、Qt.labs.platform 1.1 (Qt 5.12) で導入されました。
menuBar : MenuBar |
このプロパティは、メニューが属するメニューバーを保持します。メニューがメニューバーにない場合は、null
。
menuItem : MenuItem |
このプロパティは、(親メニューの)メニューを提示する項目を保持する。
minimumWidth : int |
このプロパティはメニューの最小幅を保持する。デフォルト値は-1
(最小幅なし)である。
parentMenu : Menu |
このプロパティはメニューが属する親メニューを保持し、メニューがサブメニューでない場合はnull
を保持する。
systemTrayIcon : SystemTrayIcon |
このプロパティはメニューが属するシステムトレイアイコンを保持し、メニューがシステムトレイアイコンにない場合はnull
を保持する。
title : string |
このプロパティはメニューのタイトルを保持する。
type : enumeration |
このプロパティはメニューのタイプを保持する。
利用可能な値:
定数 | 説明 |
---|---|
Menu.DefaultMenu | 通常のメニュー(デフォルト)。 |
Menu.EditMenu | 切り取り、コピー、貼り付けの項目があらかじめ入力された編集メニュー。 |
visible : bool |
このプロパティは、メニューが表示されているかどうかを保持します。デフォルト値はtrue
です。
シグナル Documentation
aboutToHide() |
このシグナルは、メニューがユーザーから隠されようとするときに発せられる。
注: 対応するハンドラはonAboutToHide
です。
aboutToShow() |
このシグナルはメニューがユーザーに表示されようとするときに発せられる。
注: 対応するハンドラはonAboutToShow
です。
メソッドの説明
void addItem(MenuItem item) |
メニューの最後にitem を追加します。
void addMenu(Menu submenu) |
メニューの最後にsubmenu を追加します。
void clear() |
メニューからすべての項目を削除します。
void close() |
メニューを閉じます。
void open(MenuItem item) |
現在のマウス位置でメニューを開く。オプションでメニューitem に合わせる。
void removeItem(MenuItem item) |
メニューからitem を削除する。
void removeMenu(Menu submenu) |
メニューからsubmenu を削除する。
© 2025 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.