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는 메뉴에서 트리거된 QAction 에 신호를 보내는 triggered() 및 hovered()의 두 가지 신호를 제공합니다.

clear()로 메뉴를 지우고 removeAction()로 개별 작업 항목을 제거합니다.

Q메뉴는 분리 메뉴를 제공할 수도 있습니다. 분리 메뉴는 메뉴의 사본을 포함하는 최상위 수준 창입니다. 이를 통해 사용자는 자주 사용하는 메뉴를 '떼어내어' 화면의 편리한 위치에 배치할 수 있습니다. 특정 메뉴에 이 기능을 사용하려면 setTearOffEnabled()를 사용하여 떼어내기 핸들을 삽입하세요. 떼어내기 메뉴를 사용할 때는 이 개념이 일반적으로 Microsoft Windows에서 사용되지 않으므로 일부 사용자에게 익숙하지 않을 수 있다는 점을 염두에 두세요. 대신 QToolBar 을 사용하는 것이 좋습니다.

위젯은 QWidgetAction 클래스를 사용하여 메뉴에 삽입할 수 있습니다. 이 클래스의 인스턴스는 위젯을 보유하는 데 사용되며 QAction 를 받는 addAction() 오버로드를 통해 메뉴에 삽입됩니다. QWidgetAction 에서 triggered() 신호가 발생하면 메뉴가 닫힙니다.

경고: QMenu를 화면에 표시하려면 show() 또는 setVisible() 대신 exec() 또는 popup()를 사용해야 합니다. 메뉴 모음 또는 하위 메뉴로 추가된 다른 메뉴에서 메뉴를 숨기거나 비활성화하려면 menuAction()의 각 속성을 대신 사용합니다.

Qt 빌드 어게인 코코아를 사용하는 macOS의 QMenu

QMenu는 메뉴/메뉴바에 한 번만 삽입할 수 있습니다. 이후 삽입은 효과가 없거나 메뉴 항목이 비활성화됩니다.

응용 프로그램에서 QMenuBar 및 QMenu를 사용하는 방법에 대한 예제는 메뉴 예제를 참조하십시오.

중요한 상속 함수: addAction(), removeAction(), clear(), addSeparator() 및 addMenu().

QMenuBar메뉴 예시도참조하세요 .

속성 문서

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

이 속성은 메뉴가 떼어내기를 지원하는지 여부를 보유합니다.

참이면 메뉴에는 메뉴가 트리거될 때 메뉴의 복사본을 생성하는 특수 떼어내기 항목(메뉴 상단에 점선으로 표시되는 경우가 많음)이 포함됩니다.

이 "잘라낸" 사본은 별도의 창에 존재합니다. 여기에는 잘라내기 핸들을 제외하고 원래 메뉴와 동일한 메뉴 항목이 포함됩니다.

기본적으로 이 속성은 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)

titleparent 로 메뉴를 구성합니다.

팝업 메뉴는 항상 최상위 위젯이지만, 부모가 전달되면 다른 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 * 이벤트).

QRect QMenu::actionGeometry(QAction *act) const

액션의 지오메트리를 반환합니다 act.

QAction *QMenu::activeAction() const

현재 강조 표시된 작업을 반환하거나, 현재 강조 표시된 작업이 없는 경우 nullptr 을 반환합니다.

setActiveAction()도 참조하세요 .

QAction *QMenu::addMenu(QMenu *menu)

이 편의 기능은 이 메뉴에 menu 을 하위 메뉴로 추가합니다. menumenuAction()을 반환합니다. 이 메뉴는 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)

메뉴에 icontitle 을 사용하여 QMenu 을 새로 추가합니다. 메뉴의 소유권을 가져옵니다. 새 메뉴를 반환합니다.

QWidget::addAction() 및 QMenu::menuAction()도 참조하세요 .

QAction *QMenu::addSection(const QString &text)

이 편의 함수는 새 섹션 액션, 즉 QAction::isSeparator()가 참을 반환하고 text 힌트가 있는 액션을 생성하고 이 메뉴의 액션 목록에 새 액션을 추가합니다. 새로 생성된 액션을 반환합니다.

힌트의 렌더링은 스타일과 플랫폼에 따라 달라집니다. 위젯 스타일은 섹션 렌더링에 텍스트 정보를 사용하거나 이를 무시하고 단순 구분 기호처럼 섹션을 렌더링하도록 선택할 수 있습니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::addAction()도 참조하세요 .

QAction *QMenu::addSection(const QIcon &icon, const QString &text)

이 편의 함수는 새 섹션 액션, 즉 QAction::isSeparator()이 참을 반환하고 texticon 힌트가 있는 액션을 생성하고 이 메뉴의 액션 목록에 새 액션을 추가합니다. 새로 생성된 액션을 반환합니다.

힌트의 렌더링은 스타일과 플랫폼에 따라 달라집니다. 위젯 스타일은 섹션 렌더링에 텍스트 및 아이콘 정보를 사용하거나 이를 무시하고 단순 구분 기호처럼 섹션을 렌더링하도록 선택할 수 있습니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::addAction()도 참조하세요 .

QAction *QMenu::addSeparator()

이 편의 함수는 새 구분자 액션, 즉 QAction::isSeparator()가 참을 반환하는 액션을 생성하고 이 메뉴의 액션 목록에 새 액션을 추가합니다. 새로 생성된 액션을 반환합니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::addAction()도 참조하세요 .

[override virtual protected] void QMenu::changeEvent(QEvent *e)

다시 구현합니다: QWidget::changeEvent(QEvent * 이벤트).

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 * 이벤트).

[override virtual protected] bool QMenu::event(QEvent *e)

다시 구현합니다: QWidget::event(QEvent * 이벤트).

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(다음 부울).

[override virtual protected] void QMenu::hideEvent(QHideEvent *)

다시 구현합니다: QWidget::hideEvent(QHideEvent * 이벤트).

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)

이 편의 함수는 before 동작 앞에 menu 을 삽입하고 메뉴 menuAction()를 반환합니다.

QWidget::insertAction() 및 addMenu()도 참조하세요 .

QAction *QMenu::insertSection(QAction *before, const QString &text)

이 편의 함수는 새 제목 액션, 즉 QAction::isSeparator()이 참을 반환하고 text 힌트가 있는 액션을 만듭니다. 이 함수는 새로 생성된 액션을 before 액션 앞에 있는 이 메뉴의 액션 목록에 삽입하고 반환합니다.

힌트의 렌더링은 스타일과 플랫폼에 따라 달라집니다. 위젯 스타일은 섹션 렌더링에 텍스트 정보를 사용하거나 이를 무시하고 단순 구분 기호처럼 섹션을 렌더링하도록 선택할 수 있습니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::insertAction() 및 addSection()도 참조하세요 .

QAction *QMenu::insertSection(QAction *before, const QIcon &icon, const QString &text)

이 편의 함수는 새 제목 액션, 즉 QAction::isSeparator()이 참을 반환하고 texticon 힌트가 있는 액션을 만듭니다. 이 함수는 새로 만든 액션을 before 액션 앞에 있는 이 메뉴의 액션 목록에 삽입하고 반환합니다.

힌트의 렌더링은 스타일과 플랫폼에 따라 달라집니다. 위젯 스타일은 섹션 렌더링에 텍스트 및 아이콘 정보를 사용하거나 이를 무시하고 단순 구분 기호처럼 섹션을 렌더링하도록 선택할 수 있습니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::insertAction() 및 addSection()도 참조하세요 .

QAction *QMenu::insertSeparator(QAction *before)

이 편의 함수는 새 구분자 액션, 즉 QAction::isSeparator()이 참을 반환하는 액션을 만듭니다. 이 함수는 새로 생성된 액션을 before 액션 앞에 있는 이 메뉴의 액션 목록에 삽입하고 반환합니다.

QMenu 반환된 QAction 의 소유권을 가져옵니다.

QWidget::insertAction() 및 addSeparator()도 참조하세요 .

bool QMenu::isEmpty() const

메뉴에 삽입된 표시 액션이 없으면 true 을 반환하고, 그렇지 않으면 false를 반환합니다.

QWidget::actions()도 참조하세요 .

bool QMenu::isTearOffMenuVisible() const

메뉴가 찢어지면 메뉴 내용을 새 창에 표시하는 두 번째 메뉴가 표시됩니다. 메뉴가 이 모드에 있고 메뉴가 표시되면 true 을 반환하고, 그렇지 않으면 거짓을 반환합니다.

showTearOffMenu(), hideTearOffMenu() 및 isTearOffEnabled()도 참조하세요 .

[override virtual protected] void QMenu::keyPressEvent(QKeyEvent *e)

다시 구현합니다: QWidget::keyPressEvent(QKeyEvent * 이벤트).

[override virtual protected] void QMenu::leaveEvent(QEvent *)

다시 구현합니다: QWidget::leaveEvent(QEvent * 이벤트).

이 메뉴와 연관된 액션을 반환합니다.

action 에 포함된 메뉴를 반환하거나 action 에 메뉴가 없는 경우 nullptr 을 반환합니다.

위젯 애플리케이션에서 메뉴가 포함된 액션을 사용하여 하위 메뉴가 있는 메뉴 항목을 만들거나 도구 모음에 삽입하여 팝업 메뉴가 있는 버튼을 만들 수 있습니다.

[override virtual protected] void QMenu::mouseMoveEvent(QMouseEvent *e)

다시 구현합니다: QWidget::mouseMoveEvent(QMouseEvent * 이벤트).

[override virtual protected] void QMenu::mousePressEvent(QMouseEvent *e)

다시 구현합니다: QWidget::mousePressEvent(QMouseEvent * 이벤트).

[override virtual protected] void QMenu::mouseReleaseEvent(QMouseEvent *e)

다시 구현합니다: QWidget::mouseReleaseEvent(QMouseEvent * 이벤트).

[override virtual protected] void QMenu::paintEvent(QPaintEvent *e)

다시 구현합니다: QWidget::paintEvent(QPaintEvent * 이벤트).

atAction 동작이 지정된 전역 위치 p 에 있도록 메뉴를 표시합니다. 위젯의 로컬 좌표를 전역 좌표로 변환하려면 QWidget::mapToGlobal()를 사용합니다.

exec() 또는 popup()을 사용하여 메뉴 위치를 지정할 때는 메뉴의 현재 size()에 의존할 수 없다는 점에 유의하세요. 성능상의 이유로 메뉴는 필요한 경우에만 크기를 조정하므로 많은 경우 표시 전과 후의 크기가 다릅니다. 대신 메뉴의 현재 콘텐츠에 따라 적절한 크기를 계산하는 sizeHint()를 사용하세요.

QWidget::mapToGlobal() 및 exec()도 참조하세요 .

void QMenu::setActiveAction(QAction *act)

현재 강조 표시된 동작을 act 로 설정합니다.

activeAction()도 참조하세요 .

void QMenu::setAsDockMenu()

애플리케이션 도크 아이콘을 옵션으로 클릭하여 이 메뉴를 사용할 수 있는 도크 메뉴로 설정합니다. 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(Q타이머이벤트 *이벤트).

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 * 이벤트).

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