このページでは

Menu QML Type

ネイティブ・メニュー。もっと見る...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

プロパティ

信号

方法

詳細な説明

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 モジュールの型は、将来のバージョンでも互換性が保たれることを保証するものではありません。

MenuItemMenuSeparatorMenuBarも参照して ください。

プロパティのドキュメント

data : list<QtObject> [default]

このデフォルト・プロパティは、メニューの子として宣言されたすべてのオブジェクトのリストを保持する。data プロパティには、TimerQtObject のような、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>

このプロパティは、メニューの項目のリストを保持する。

このプロパティは、メニューが属するメニューバーを保持し、メニューバー内にメニューがない場合は、null

このプロパティは、(親メニューにおいて)メニューを提示する項目を保持する。

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)

メニューの指定されたindexitem を挿入する。

void insertMenu(int index, Menu submenu)

メニューの指定されたindexsubmenu を挿入する。

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.