이 페이지에서

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
  • 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]

이 기본 속성은 메뉴의 자식으로 선언된 모든 객체의 목록을 포함합니다. data 속성에는 Timer 및 QtObject 와 같이 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)

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

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