Menu QML Type

기본 메뉴. 더 보기...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

속성

신호

방법

상세 설명

메뉴 유형은 네이티브 플랫폼 메뉴 팝업을 위한 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참조하세요 .

속성 문서

data : list<QtObject> [default]

이 기본 속성에는 메뉴의 자식으로 선언된 모든 객체 목록이 저장됩니다. 데이터 속성에는 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)]

이 속성은 메뉴 항목의 아이콘을 보유합니다.

이 QML 속성은 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)

메뉴의 지정된 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 을 제거합니다.


© 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.