QMenu 是 Qt 中的一个菜单类,用于创建弹出式菜单和菜单栏。
使用 QMenu 的基本步骤如下:
- 创建 QMenu 对象
QMenu menu(“菜单”);
- 添加菜单项
menu.addAction(“菜单项 1”); menu.addAction(“菜单项 2”);
- 设置菜单的父对象
menu.setParent(this);
- 显示菜单
menu.exec(QCursor::pos());
完整示例代码:
#include
class MainWindow : public QMainWindow { public:
MainWindow(QWidget *parent = nullptr)
: QMainWindow(parent)
{
// 创建菜单栏
QMenuBar *menuBar = new QMenuBar(this);
setMenuBar(menuBar);
// 创建菜单
QMenu *menu = new QMenu("菜单", menuBar);
menuBar->addMenu(menu);
// 添加菜单项
QAction *action1 = new QAction("菜单项 1", this);
QAction *action2 = new QAction("菜单项 2", this);
menu->addAction(action1);
menu->addAction(action2);
// 连接信号槽
connect(action1, &QAction::triggered, this, []() { qDebug() << "菜单项 1 被点击了"; });
connect(action2, &QAction::triggered, this, []() { qDebug() << "菜单项 2 被点击了"; });
// 设置窗口标题和大小
setWindowTitle("QMenu 示例");
resize(400, 300);
}
};
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
运行效果如下图所示: