在 Qt 框架中,QMenu 类用于创建和管理菜单。菜单是用户界面的一部分,可以包含多个选项或动作,用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单(右键菜单)或工具栏中。
基本用法
创建菜单对象:
QMenu *menu = new QMenu(this); // 创建一个新的 QMenu 对象,父对象为当前小部件
添加动作:
使用 addAction 方法将 QAction 对象添加到菜单中。QAction 代表菜单中的一个选项或动作。
QAction *action1 = new QAction("Action 1", this);
menu->addAction(action1); // 将动作添加到菜单
显示菜单:
菜单可以在指定的位置显示,例如在鼠标光标位置。
menu->exec(QCursor::pos()); // 在当前光标位置显示菜单
widget.h
#pragma once
#include <QtWidgets/QWidget>
#include "ui_widget.h"
#include <QMenu>
class widget : public QWidget
{
Q_OBJECT
public:
widget(QWidget *parent = nullptr);
~widget();
void contextMenuEvent(QContextMenuEvent* event) override;
void initMenu();
private:
Ui::widgetClass ui;
QMenu* m_pMenu = nullptr;
};
widget.cpp
#include "widget.h"
#include <QAction>
#include <QMessageBox>
widget::widget(QWidget *parent)
: QWidget(parent)
{
ui.setupUi(this);
this->setContextMenuPolicy(Qt::DefaultContextMenu);
initMenu();
}
widget::~widget()
{
}
void widget::contextMenuEvent(QContextMenuEvent* event) {
m_pMenu->exec(QCursor::pos());
}
void widget::initMenu() {
m_pMenu = new QMenu