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 ウィジェットを使用します。そのため、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 を削除する。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。