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)
상세 설명
메뉴 유형은 네이티브 플랫폼 메뉴 팝업을 위한 QML API를 제공합니다.
메뉴는 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 { 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 += 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
입니다.
문서 신호
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.