QMenu Class
QMenu 클래스는 메뉴 바, 컨텍스트 메뉴 및 기타 팝업 메뉴에서 사용할 수 있는 메뉴 위젯을 제공합니다. 더 보기...
| 헤더: | #include <QMenu> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| 상속: | QWidget |
속성
|
|
공개 함수
| QMenu(QWidget *parent = nullptr) | |
| QMenu(const QString &title, QWidget *parent = nullptr) | |
| virtual | ~QMenu() |
| QAction * | actionAt(const QPoint &pt) const |
| QRect | actionGeometry(QAction *act) const |
| QAction * | activeAction() const |
| QAction * | addMenu(QMenu *menu) |
| QMenu * | addMenu(const QString &title) |
| QMenu * | addMenu(const QIcon &icon, const QString &title) |
| QAction * | addSection(const QString &text) |
| QAction * | addSection(const QIcon &icon, const QString &text) |
| QAction * | addSeparator() |
| void | clear() |
| QAction * | defaultAction() const |
| QAction * | exec() |
| QAction * | exec(const QPoint &p, QAction *action = nullptr) |
| void | hideTearOffMenu() |
| QIcon | icon() const |
| QAction * | insertMenu(QAction *before, QMenu *menu) |
| QAction * | insertSection(QAction *before, const QString &text) |
| QAction * | insertSection(QAction *before, const QIcon &icon, const QString &text) |
| QAction * | insertSeparator(QAction *before) |
| bool | isEmpty() const |
| bool | isTearOffEnabled() const |
| bool | isTearOffMenuVisible() const |
| QAction * | menuAction() const |
| void | popup(const QPoint &p, QAction *atAction = nullptr) |
| bool | separatorsCollapsible() const |
| void | setActiveAction(QAction *act) |
| void | setAsDockMenu() |
| void | setDefaultAction(QAction *act) |
| void | setIcon(const QIcon &icon) |
| void | setSeparatorsCollapsible(bool collapse) |
| void | setTearOffEnabled(bool) |
| void | setTitle(const QString &title) |
| void | setToolTipsVisible(bool visible) |
| void | showTearOffMenu(const QPoint &pos) |
| void | showTearOffMenu() |
| QString | title() const |
| NSMenu * | toNSMenu() |
| bool | toolTipsVisible() const |
재구현된 공용 함수
| virtual QSize | sizeHint() const override |
신호
| void | aboutToHide() |
| void | aboutToShow() |
| void | hovered(QAction *action) |
| void | triggered(QAction *action) |
정적 공용 멤버
| QAction * | exec(const QList<QAction *> &actions, const QPoint &pos, QAction *at = nullptr, QWidget *parent = nullptr) |
| QMenu * | menuInAction(const QAction *action) |
보호된 함수
| int | columnCount() const |
| virtual void | initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const |
재구현된 보호된 함수
| virtual void | actionEvent(QActionEvent *e) override |
| virtual void | changeEvent(QEvent *e) override |
| virtual void | enterEvent(QEnterEvent *) override |
| virtual bool | event(QEvent *e) override |
| virtual bool | focusNextPrevChild(bool next) override |
| virtual void | hideEvent(QHideEvent *) override |
| virtual void | keyPressEvent(QKeyEvent *e) override |
| virtual void | leaveEvent(QEvent *) override |
| virtual void | mouseMoveEvent(QMouseEvent *e) override |
| virtual void | mousePressEvent(QMouseEvent *e) override |
| virtual void | mouseReleaseEvent(QMouseEvent *e) override |
| virtual void | paintEvent(QPaintEvent *e) override |
| virtual void | timerEvent(QTimerEvent *e) override |
| virtual void | wheelEvent(QWheelEvent *e) override |
상세 설명

메뉴 위젯은 선택 메뉴입니다. 메뉴 바에 있는 풀다운 메뉴이거나 독립형 컨텍스트 메뉴일 수 있습니다. 풀다운 메뉴는 사용자가 해당 항목을 클릭하거나 지정된 단축키를 누르면 메뉴 바에 표시됩니다. QMenuBar::addMenu()를 사용하여 메뉴 바에 메뉴를 삽입할 수 있습니다. 컨텍스트 메뉴는 일반적으로 특정 키보드 키를 누르거나 마우스 오른쪽 버튼을 클릭하여 호출됩니다. 이 메뉴는 popup()을 사용하여 비동기적으로 실행하거나, exec()을 사용하여 동기적으로 실행할 수 있습니다. 또한 버튼을 누르는 동작에 반응하여 메뉴를 호출할 수도 있는데, 호출 방식만 다를 뿐 컨텍스트 메뉴와 동일합니다.
작업
메뉴는 일련의 작업 항목 목록으로 구성됩니다. 작업은 addAction(), addActions() 및 insertAction() 함수를 사용하여 추가됩니다. 작업은 수직으로 표시되며 QStyle 함수를 통해 렌더링됩니다. 또한 작업에는 텍스트 레이블, 맨 왼쪽에 그려지는 선택적 아이콘, 그리고 "Ctrl+X"와 같은 단축키 조합이 포함될 수 있습니다.
메뉴에 포함된 기존 액션 항목은 ` actions()`를 통해 확인할 수 있습니다.
액션 항목에는 구분선, 하위 메뉴를 표시하는 액션, 위젯, 그리고 특정 동작을 수행하는 액션의 네 가지 종류가 있습니다. 구분선은 addSeparator()로 삽입되고, 하위 메뉴는 addMenu()로 삽입되며, 그 외의 모든 항목은 액션 항목으로 간주됩니다.
액션 항목을 삽입할 때는 일반적으로 리시버와 슬롯을 지정합니다. 항목이 ` triggered()`될 때마다 리시버에 알림이 전송됩니다. 또한, QMenu는 ` triggered()`와 ` hovered()`라는 두 가지 신호를 제공하며, 이는 메뉴에서 트리거된 ` QAction `를 알립니다.
clear()을 사용하여 메뉴를 지우고, removeAction()을 사용하여 개별 작업 항목을 제거할 수 있습니다.
QMenu는 분리형 메뉴(tear-off menu)를 제공할 수도 있습니다. 분리형 메뉴는 메뉴의 복사본을 포함하는 최상위 창입니다. 이를 통해 사용자는 자주 사용하는 메뉴를 "분리"하여 화면의 편리한 위치에 배치할 수 있습니다. 특정 메뉴에 이 기능을 적용하려면 ` setTearOffEnabled()`를 사용하여 분리 핸들을 삽입하십시오. 분리 메뉴를 사용할 때는 이 개념이 Microsoft Windows에서는 일반적으로 사용되지 않으므로 일부 사용자가 익숙하지 않을 수 있다는 점을 유의하십시오. 대신 ` QToolBar `를 사용하는 것을 고려해 보십시오.
QWidgetAction 클래스를 사용하여 메뉴에 위젯을 삽입할 수 있습니다. 이 클래스의 인스턴스는 위젯을 담는 데 사용되며, QAction 를 매개변수로 받는 addAction() 오버로드 함수를 통해 메뉴에 삽입됩니다. QWidgetAction 가 triggered() 신호를 발생시키면 메뉴가 닫힙니다.
경고: QMenu를 화면에표시하려면 show()이나 setVisible() 대신 exec() 또는 popup()을 사용해야 합니다. 메뉴 바나 하위 메뉴로 추가된 다른 메뉴에서 메뉴를 숨기거나 비활성화하려면 대신 menuAction()의 해당 속성을 사용하십시오.
Cocoa용 Qt로 빌드된 macOS 환경에서의 QMenu
QMenu는 메뉴/메뉴바에 한 번만 삽입할 수 있습니다. 그 이후에 삽입하면 효과가 없거나 메뉴 항목이 비활성화됩니다.
애플리케이션에서 ` QMenuBar ` 및 `QMenu`를 사용하는 방법에 대한 예제는 Menus 예제를 참조하십시오.
중요한 상속 함수: addAction(), removeAction(), clear(), addSeparator(), addMenu().
속성 문서
icon : QIcon
이 속성은 메뉴의 아이콘을 저장합니다.
이는 menuAction()의 QAction::icon 속성과 동일합니다.
기본적으로 아이콘이 명시적으로 설정되지 않은 경우, 이 속성에는 null 아이콘이 포함됩니다.
액세스 함수:
| QIcon | icon() const |
| void | setIcon(const QIcon &icon) |
separatorsCollapsible : bool
이 속성은 연속된 구분선이 접혀 표시되어야 하는지 여부를 지정합니다.
이 속성은 메뉴 내의 연속된 구분선을 시각적으로 하나의 구분선으로 축소할지 여부를 지정합니다. 메뉴의 맨 앞이나 맨 끝에 있는 구분선도 숨겨집니다.
기본적으로 이 속성의 값은 ' true'입니다.
액세스 함수:
| bool | separatorsCollapsible() const |
| void | setSeparatorsCollapsible(bool collapse) |
tearOffEnabled : bool
이 속성은 메뉴가 떼어내기 기능을 지원하는지 여부를 나타냅니다.
true인 경우, 메뉴에는 트리거되면 메뉴의 복사본을 생성하는 특수한 분리 항목(대개 메뉴 상단에 점선으로 표시됨)이 포함됩니다.
이렇게 "분리된" 복사본은 별도의 창에 표시됩니다. 이 복사본에는 분리 핸들을 제외하고는 원본 메뉴와 동일한 메뉴 항목이 포함됩니다.
기본적으로 이 속성의 값은 ` false`입니다.
액세스 함수:
| bool | isTearOffEnabled() const |
| void | setTearOffEnabled(bool) |
title : QString
이 속성은 메뉴의 제목을 나타냅니다
이는 menuAction()의 QAction::text 속성과 동일합니다.
기본적으로 이 속성은 빈 문자열을 포함합니다.
액세스 함수:
| QString | title() const |
| void | setTitle(const QString &title) |
toolTipsVisible : bool
이 속성은 메뉴 동작의 툴팁을 표시할지 여부를 지정합니다.
이 속성은 작업 메뉴 항목에 툴팁을 표시할지 여부를 지정합니다.
기본적으로 이 속성의 값은 ' false'입니다.
액세스 함수:
| bool | toolTipsVisible() const |
| void | setToolTipsVisible(bool visible) |
멤버 함수 설명서
[explicit] QMenu::QMenu(QWidget *parent = nullptr)
parent 를 부모로 하는 메뉴를 생성합니다.
팝업 메뉴는 항상 최상위 위젯이지만, 부모 객체가 전달된 경우 해당 부모 객체가 소멸되면 팝업 메뉴도 함께 삭제됩니다(다른 모든 QObject 와 마찬가지로).
[explicit] QMenu::QMenu(const QString &title, QWidget *parent = nullptr)
title 와 parent 로 구성된 메뉴를 생성합니다.
팝업 메뉴는 항상 최상위 위젯이지만, 부모 위젯이 전달된 경우 해당 부모 위젯이 소멸되면 팝업 메뉴도 함께 삭제됩니다(다른 모든 QObject 와 마찬가지로).
title도 참조하십시오 .
[virtual noexcept] QMenu::~QMenu()
메뉴를 삭제합니다.
[signal] void QMenu::aboutToHide()
이 신호는 메뉴가 사용자에게서 숨겨지기 직전에 발생합니다.
aboutToShow() 및 hide()도 참조하십시오 .
[signal] void QMenu::aboutToShow()
이 신호는 사용자에게 메뉴가 표시되기 직전에 전송됩니다.
aboutToHide() 및 show()도 참조하십시오 .
QAction *QMenu::actionAt(const QPoint &pt) const
pt 에 있는 항목을 반환합니다. 해당 위치에 항목이 없으면 nullptr 를 반환합니다.
[override virtual protected] void QMenu::actionEvent(QActionEvent *e)
QWidget::actionEvent(QActionEvent *event)를 재구현합니다.
QRect QMenu::actionGeometry(QAction *act) const
act 의 기하 구조를 반환합니다.
QAction *QMenu::activeAction() const
현재 선택된 작업을 반환하거나, 선택된 작업이 없는 경우 ` nullptr `를 반환합니다.
setActiveAction()도 참조하십시오 .
QAction *QMenu::addMenu(QMenu *menu)
이 편의 함수는 menu 을 이 메뉴의 하위 메뉴로 추가합니다. 이 함수는 menu 의 menuAction()를 반환합니다. 이 메뉴는 menu 에 대한 소유권을 가져가지 않습니다.
QWidget::addAction() 및 QMenu::menuAction()도 참조하십시오 .
QMenu *QMenu::addMenu(const QString &title)
title 를 가진 새로운 QMenu 를 메뉴에 추가합니다. 이 메뉴는 해당 메뉴의 소유권을 인수합니다. 새로운 메뉴를 반환합니다.
QWidget::addAction() 및 QMenu::menuAction()도 참조하십시오 .
QMenu *QMenu::addMenu(const QIcon &icon, const QString &title)
icon 및 title 을 포함하는 새로운 QMenu 객체를 메뉴에 추가합니다. 이 메뉴는 해당 메뉴의 소유권을 인수합니다. 새로운 메뉴를 반환합니다.
QWidget::addAction() 및 QMenu::menuAction()도 참조하십시오 .
QAction *QMenu::addSection(const QString &text)
이 편의 함수는 새로운 섹션 액션, 즉 ` QAction::isSeparator()`가 true를 반환하면서도 ` text ` 힌트를 갖는 액션을 생성하고, 이 액션을 해당 메뉴의 액션 목록에 추가합니다. 이 함수는 새로 생성된 액션을 반환합니다.
힌트의 렌더링 방식은 스타일과 플랫폼에 따라 다릅니다. 위젯 스타일은 섹션 렌더링 시 텍스트 정보를 사용할 수도 있고, 이를 무시하고 섹션을 단순한 구분선처럼 렌더링하도록 선택할 수도 있습니다.
QMenu 반환된 QAction 의 소유권을 인수합니다.
QWidget::addAction()도 참조하십시오 .
QAction *QMenu::addSection(const QIcon &icon, const QString &text)
이 편의 함수는 새로운 섹션 액션, 즉 ` QAction::isSeparator()`가 true를 반환하지만 ` text ` 및 ` icon ` 힌트를 함께 갖는 액션을 생성하고, 이 새로운 액션을 해당 메뉴의 액션 목록에 추가합니다. 이 함수는 새로 생성된 액션을 반환합니다.
힌트의 렌더링 방식은 스타일과 플랫폼에 따라 다릅니다. 위젯 스타일은 섹션 렌더링 시 텍스트 및 아이콘 정보를 사용할 수도 있고, 이를 무시하고 섹션을 단순한 구분선처럼 렌더링하도록 선택할 수도 있습니다.
QMenu 반환된 ` QAction`의 소유권을 인수합니다.
QWidget::addAction()도 참조하십시오 .
QAction *QMenu::addSeparator()
이 편의 함수는 새로운 구분자 동작, 즉 ` QAction::isSeparator()`가 `true`를 반환하는 동작을 생성하고, 이 동작을 해당 메뉴의 동작 목록에 추가합니다. 이 함수는 새로 생성된 동작을 반환합니다.
QMenu 반환된 ` QAction`의 소유권을 인수합니다.
QWidget::addAction()도 참조하십시오 .
[override virtual protected] void QMenu::changeEvent(QEvent *e)
QWidget::changeEvent(QEvent *event)를 재구현합니다.
void QMenu::clear()
메뉴의 모든 동작을 제거합니다. 해당 메뉴에 속해 있으며 다른 위젯에는 표시되지 않는 동작들이 삭제됩니다.
removeAction()도 참조하십시오 .
[protected] int QMenu::columnCount() const
메뉴가 화면에 다 들어가지 않을 경우, 화면에 다 들어갈 수 있도록 배열이 조정됩니다. ‘배열’이 무엇을 의미하는지는 운영 체제에 따라 다릅니다(예를 들어, Windows에서는 여러 열로 배열됩니다).
이 함수는 필요한 열의 수를 반환합니다.
QAction *QMenu::defaultAction() const
현재의 기본 동작을 반환합니다.
setDefaultAction()도 참조하십시오 .
[override virtual protected] void QMenu::enterEvent(QEnterEvent *)
QWidget::enterEvent(QEnterEvent *event)를 재구현합니다.
[override virtual protected] bool QMenu::event(QEvent *e)
QWidget::event(QEvent *event)를 재구현합니다.
QAction *QMenu::exec()
이 메뉴를 동기식으로 실행합니다.
이는 ` exec(pos())`와 동일합니다.
이 메서드는 팝업 메뉴나 그 하위 메뉴 중 하나에서 트리거된 ` QAction `를 반환하거나, 트리거된 항목이 없는 경우(일반적으로 사용자가 Esc 키를 누른 경우) ` nullptr `를 반환합니다.
대부분의 경우, 예를 들어 현재 마우스 위치와 같이 위치를 직접 지정하고 싶을 것입니다:
exec(QCursor::pos());또는 위젯에 맞춰 정렬된 위치:
exec(somewidget.mapToGlobal(QPoint(0,0)));QMouseEvent *e에 반응하여:
exec(e->globalPosition().toPoint());QAction *QMenu::exec(const QPoint &p, QAction *action = nullptr)
이 메뉴를 동기식으로 실행합니다.
action 액션이 지정된 전역 위치 p 에 오도록 메뉴를 표시합니다. 위젯의 국소 좌표를 전역 좌표로 변환하려면 QWidget::mapToGlobal()를 사용하십시오.
이 함수는 팝업 메뉴나 그 하위 메뉴 중 하나에서 트리거된 QAction 를 반환하거나, 트리거된 항목이 없는 경우(일반적으로 사용자가 Esc 키를 누른 경우) nullptr 를 반환합니다.
모든 신호는 평소와 같이 발송된다는 점에 유의하십시오. QAction 를 슬롯에 연결하고 메뉴의 exec()를 호출하면, 신호-슬롯 연결을 통해서도, exec()의 반환값을 통해서도 결과를 얻을 수 있습니다.
일반적으로 메뉴를 현재 마우스 위치에 배치하는 방식이 많이 사용됩니다:
exec(QCursor::pos());또는 위젯에 맞춰 배치하는 경우:
exec(somewidget.mapToGlobal(QPoint(0, 0)));또는 QMouseEvent *e에 반응하여:
exec(e->globalPosition().toPoint());exec()이나 popup()을 사용하여 메뉴를 배치할 때는 메뉴의 현재 size() 값을 신뢰할 수 없다는 점을 유의해야 합니다. 성능상의 이유로, 메뉴는 필요한 경우에만 크기를 조정합니다. 따라서 대부분의 경우, 표시 전후의 크기가 다릅니다. 대신, 메뉴의 현재 내용에 따라 적절한 크기를 계산하는 ` sizeHint()`를 사용하십시오.
이 함수는 오버로드된 함수입니다.
popup() 및 QWidget::mapToGlobal()도 참조하십시오 .
[static] QAction *QMenu::exec(const QList<QAction *> &actions, const QPoint &pos, QAction *at = nullptr, QWidget *parent = nullptr)
메뉴를 동기식으로 실행합니다.
메뉴의 동작은 ` actions` 목록으로 지정됩니다. 메뉴가 팝업되어 지정된 동작인 ` at`가 전역 위치 ` pos`에 표시됩니다. at 가 지정되지 않은 경우, 메뉴는 위치 pos 에 나타납니다. parent 는 메뉴의 부모 위젯입니다. 부모를 지정하면 pos 만으로는 메뉴가 어디에 배치되어야 할지 결정하기에 충분하지 않은 경우(예: 데스크톱이 여러 개이거나 부모가 QGraphicsView 에 포함된 경우)에 컨텍스트를 제공할 수 있습니다.
이 함수는 팝업 메뉴나 그 하위 메뉴 중 하나에서 트리거된 QAction 를 반환하거나, 트리거된 항목이 없는 경우(일반적으로 사용자가 Esc 키를 누른 경우) nullptr 를 반환합니다.
이는 다음 코드와 동일합니다:
QMenu menu;
QAction *at = actions[0]; // Assumes actions is not empty
for (QAction *a : std::as_const(actions))
menu.addAction(a);
menu.exec(pos, at);이 함수는 오버로드된 함수입니다.
popup() 및 QWidget::mapToGlobal()도 참조하십시오 .
[override virtual protected] bool QMenu::focusNextPrevChild(bool next)
QWidget::focusNextPrevChild(bool next)를 재구현합니다.
[override virtual protected] void QMenu::hideEvent(QHideEvent *)
QWidget::hideEvent(QHideEvent *event)를 재구현합니다.
void QMenu::hideTearOffMenu()
이 함수는 찢어진 메뉴를 강제로 숨겨 사용자의 바탕화면에서 사라지게 합니다.
showTearOffMenu(), isTearOffMenuVisible(), isTearOffEnabled()도 참조하십시오 .
[signal] void QMenu::hovered(QAction *action)
이 신호는 메뉴 작업이 선택되었을 때 발생하며, ` action `는 이 신호의 발생 원인이 된 작업입니다.
대개 이 신호는 상태 정보를 업데이트하는 데 사용됩니다.
triggered() 및 QAction::hovered()도 참조하십시오 .
[virtual protected] void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const
이 메뉴의 값과 action 의 정보를 사용하여 option 를 초기화합니다. 이 방법은 하위 클래스에서 QStyleOptionMenuItem 가 필요하지만, 모든 정보를 직접 입력하고 싶지 않을 때 유용합니다.
QStyleOption::initFrom() 및 QMenuBar::initStyleOption()도 참조하십시오 .
QAction *QMenu::insertMenu(QAction *before, QMenu *menu)
이 편의 함수는 action before 앞에 menu 을 삽입하고, menuAction() 메뉴를 반환합니다.
QWidget::insertAction() 및 addMenu()도 참조하십시오 .
QAction *QMenu::insertSection(QAction *before, const QString &text)
이 편의 함수는 새로운 제목 액션을 생성합니다. 즉, ` QAction::isSeparator()`가 true를 반환하지만 ` text ` 힌트도 갖는 액션을 말합니다. 이 함수는 새로 생성된 액션을 이 메뉴의 액션 목록에서 ` before ` 액션 앞에 삽입한 후, 해당 메뉴를 반환합니다.
힌트의 렌더링 방식은 스타일과 플랫폼에 따라 달라집니다. 위젯 스타일은 렌더링 시 섹션에 텍스트 정보를 사용할 수도 있고, 이를 무시하고 섹션을 단순한 구분선처럼 렌더링하도록 선택할 수도 있습니다.
QMenu 반환된 ` QAction`의 소유권을 인수합니다.
QWidget::insertAction() 및 addSection()도 참조하십시오 .
QAction *QMenu::insertSection(QAction *before, const QIcon &icon, const QString &text)
이 편의 함수는 새로운 제목 액션을 생성합니다. 즉, ` QAction::isSeparator()`가 true를 반환하지만 ` text ` 및 ` icon ` 힌트를 함께 갖는 액션입니다. 이 함수는 새로 생성된 액션을 이 메뉴의 액션 목록에서 ` before ` 액션 바로 앞에 삽입한 후, 해당 메뉴를 반환합니다.
힌트의 렌더링 방식은 스타일과 플랫폼에 따라 다릅니다. 위젯 스타일은 섹션을 렌더링할 때 텍스트 및 아이콘 정보를 사용할 수도 있고, 이를 무시하고 섹션을 단순한 구분선처럼 렌더링할 수도 있습니다.
QMenu 반환된 ` QAction`의 소유권을 인수합니다.
QWidget::insertAction() 및 addSection()도 참조하십시오 .
QAction *QMenu::insertSeparator(QAction *before)
이 편의 함수는 새로운 구분자 액션을 생성합니다. 즉, ` QAction::isSeparator()`가 true를 반환하는 액션입니다. 이 함수는 새로 생성된 액션을 이 메뉴의 액션 목록에서 ` before ` 액션 바로 앞에 삽입한 후, 해당 메뉴를 반환합니다.
QMenu 반환된 ` QAction`의 소유권을 가져옵니다.
QWidget::insertAction() 및 addSeparator()도 참조하십시오 .
bool QMenu::isEmpty() const
메뉴에 표시되는 액션이 삽입되어 있지 않으면 true 를 반환하고, 그렇지 않으면 false를 반환합니다.
QWidget::actions()도 참조하십시오 .
bool QMenu::isTearOffMenuVisible() const
메뉴가 떼어지면, 메뉴 내용을 새 창에 표시하기 위해 두 번째 메뉴가 나타납니다. 메뉴가 이 모드에 있고 메뉴가 표시되어 있을 때 true 를 반환하며, 그렇지 않은 경우 false를 반환합니다.
showTearOffMenu(), hideTearOffMenu(), isTearOffEnabled()도 참조하십시오 .
[override virtual protected] void QMenu::keyPressEvent(QKeyEvent *e)
QWidget::keyPressEvent(QKeyEvent *event)를 재구현합니다.
[override virtual protected] void QMenu::leaveEvent(QEvent *)
QWidget::leaveEvent(QEvent *event)를 재구현합니다.
QAction *QMenu::menuAction() const
이 메뉴와 관련된 액션을 반환합니다.
[static] QMenu *QMenu::menuInAction(const QAction *action)
action 에 포함된 메뉴를 반환하거나, action 에 메뉴가 포함되어 있지 않은 경우 nullptr 를 반환합니다.
위젯 애플리케이션에서 메뉴를 포함하는 액션을 사용하여 하위 메뉴가 있는 메뉴 항목을 만들거나, 툴바에 삽입하여 팝업 메뉴가 있는 버튼을 생성할 수 있습니다.
[override virtual protected] void QMenu::mouseMoveEvent(QMouseEvent *e)
QWidget::mouseMoveEvent(QMouseEvent *event)를 재구현합니다.
[override virtual protected] void QMenu::mousePressEvent(QMouseEvent *e)
QWidget::mousePressEvent(QMouseEvent *event)를 재구현합니다.
[override virtual protected] void QMenu::mouseReleaseEvent(QMouseEvent *e)
QWidget::mouseReleaseEvent(QMouseEvent *event)를 재구현합니다.
[override virtual protected] void QMenu::paintEvent(QPaintEvent *e)
QWidget::paintEvent(QPaintEvent *event)를 재구현합니다.
void QMenu::popup(const QPoint &p, QAction *atAction = nullptr)
atAction 작업이 지정된 전역 위치 p 에 오도록 메뉴를 표시합니다. 위젯의 국소 좌표를 전역 좌표로 변환하려면 QWidget::mapToGlobal()를 사용하십시오.
exec() 또는 popup()을 사용하여 메뉴의 위치를 지정할 때는 메뉴의 현재 size() 값을 신뢰할 수 없다는 점을 유의하십시오. 성능상의 이유로 메뉴는 필요한 경우에만 크기를 조정하므로, 대부분의 경우 표시 전후의 크기가 다릅니다. 대신 메뉴의 현재 내용에 따라 적절한 크기를 계산하는 sizeHint()을 사용하십시오.
QWidget::mapToGlobal() 및 exec()도 참조하십시오 .
void QMenu::setActiveAction(QAction *act)
현재 선택된 동작을 ‘ act ’로 설정합니다.
activeAction()도 참조하십시오 .
void QMenu::setAsDockMenu()
이 메뉴를 애플리케이션 도크 아이콘을 Option 키를 누른 채 클릭했을 때 표시되는 도크 메뉴로 설정합니다. macOS에서만 사용할 수 있습니다.
void QMenu::setDefaultAction(QAction *act)
이렇게 하면 기본 동작이 ` act`로 설정됩니다. 기본 동작은 현재 ` QStyle`에 따라 시각적 신호가 표시될 수 있습니다. 기본 동작은 일반적으로 드롭이 발생했을 때 기본적으로 어떤 일이 일어날지를 나타냅니다.
defaultAction()도 참조하십시오 .
void QMenu::showTearOffMenu(const QPoint &pos)
이 함수는 잘려 나간 메뉴를 강제로 표시하여, 지정된 전역 위치 pos 에 사용자의 바탕화면에 나타나게 합니다.
hideTearOffMenu(), isTearOffMenuVisible(), isTearOffEnabled()도 참조하십시오 .
void QMenu::showTearOffMenu()
이 함수는 찢어진 메뉴를 강제로 표시하여 사용자의 바탕화면에서 마우스 커서 아래에 나타나게 합니다.
이 함수는 오버로드된 함수입니다.
hideTearOffMenu(), isTearOffMenuVisible(), isTearOffEnabled()도 참조하십시오 .
[override virtual] QSize QMenu::sizeHint() const
QWidget::sizeHint 속성에 대한 액세스 함수를 다시 구현합니다.
[override virtual protected] void QMenu::timerEvent(QTimerEvent *e)
QObject::timerEvent(QTimerEvent *event)를 재구현합니다.
NSMenu *QMenu::toNSMenu()
이 메뉴에 대한 네이티브 NSMenu를 반환합니다. macOS에서만 사용할 수 있습니다.
참고: Qt는 네이티브 메뉴에 델리게이트를 설정합니다. 사용자 정의 델리게이트를 설정해야 하는 경우, 원래 델리게이트를 저장해 두고 해당 델리게이트로 전달되는 모든 호출을 전달해야 합니다.
[signal] void QMenu::triggered(QAction *action)
이 메뉴의 특정 동작이 실행되면 이 신호가 발생합니다.
action 는 신호가 발생하게 된 원인이 된 액션입니다.
일반적으로 각 메뉴 액션의 triggered() 신호를 해당 액션의 사용자 정의 슬롯에 연결하지만, 예를 들어 “왼쪽 정렬”, “중앙 정렬”, “오른쪽 정렬”과 같이 밀접하게 관련된 액션 그룹이 있는 경우 등에는 여러 액션을 하나의 슬롯에 연결하고 싶을 때가 있습니다.
참고: 이 신호는 계층 구조에서 최상위 부모 메뉴에 대해 발송됩니다. 따라서 부모 메뉴만 슬롯에 연결하면 되며, 하위 메뉴는 연결할 필요가 없습니다.
hovered() 및 QAction::triggered()도 참조하십시오 .
[override virtual protected] void QMenu::wheelEvent(QWheelEvent *e)
QWidget::wheelEvent(QWheelEvent *event)를 재구현합니다.
© 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.