QT 的Qmenu菜单项点击事件
时间: 2023-12-14 19:49:29 浏览: 1455
在 Qt 中,可以使用 `QAction` 类来创建菜单项,并使用 `QMenu` 类创建菜单。当菜单项被点击时,可以使用 `triggered` 信号来处理它的点击事件。
下面是一个示例代码,演示如何创建一个菜单,并处理菜单项的点击事件:
```cpp
// 创建菜单
QMenu* menu = new QMenu(this);
menu->setTitle("File");
// 创建菜单项
QAction* newAction = new QAction("New", this);
QAction* openAction = new QAction("Open", this);
QAction* saveAction = new QAction("Save", this);
QAction* exitAction = new QAction("Exit", this);
// 将菜单项添加到菜单中
menu->addAction(newAction);
menu->addAction(openAction);
menu->addAction(saveAction);
menu->addSeparator(); // 添加分隔线
menu->addAction(exitAction);
// 处理菜单项的点击事件
connect(newAction, &QAction::triggered, this, &MyClass::onNewActionClicked);
connect(openAction, &QAction::triggered, this, &MyClass::onOpenActionClicked);
connect(saveAction, &QAction::triggered, this, &MyClass::onSaveActionClicked);
connect(exitAction, &QAction::triggered, this, &MyClass::onExitActionClicked);
// 菜单弹出
menu->exec(QCursor::pos());
```
在上面的示例代码中,`MyClass` 是一个继承自 `QObject` 的类,其声明了 `onNewActionClicked()`、`onOpenActionClicked()`、`onSaveActionClicked()` 和 `onExitActionClicked()` 四个槽函数,用于处理菜单项点击事件。在 `connect()` 函数中,将菜单项的 `triggered` 信号连接到相应的槽函数上,当菜单项被点击时,对应的槽函数将被调用。
最后,使用 `menu->exec(QCursor::pos())` 将菜单弹出。`QCursor::pos()` 返回当前鼠标光标的位置,将菜单弹出在光标位置的右键菜单中。
阅读全文