qt 判断qaction是否点击到下拉菜单箭头
时间: 2023-07-22 10:06:47 浏览: 92
带箭头的下拉菜单
4星 · 用户满意度95%
您可以通过将 QAction 的 triggered() 信号连接到一个槽函数,并在该槽函数中判断 QAction 是否被点击,以及是否是通过下拉菜单箭头来触发的。
示例代码:
```c++
connect(action, &QAction::triggered, this, &MyClass::onActionTriggered);
void MyClass::onActionTriggered()
{
QAction *action = qobject_cast<QAction *>(sender());
if (action) {
QMenu *menu = action->menu();
if (menu && action == menu->menuAction()) {
// 点击了下拉菜单箭头
} else {
// 点击了普通的 QAction
}
}
}
```
在槽函数中,我们首先将 sender() 返回的对象转换成 QAction,并判断是否有效,然后获取该 QAction 所属的菜单并判断该 QAction 是否是菜单的菜单项,如果是,则说明点击了下拉菜单箭头,否则说明点击了普通的 QAction。
阅读全文