QAction *action=(QAction*)sender(); QMenu *m_pSetMenu_2=action->parent();
时间: 2024-03-14 10:47:33 浏览: 42
QT-04-qt菜单处理 QMenu及QAction的组合使用
5星 · 资源好评率100%
这个错误是因为 `action->parent()` 返回的是一个 QObject 类型的指针,而你尝试将它转换为 QMenu 指针。这样的转换是不合法的,因为 QObject 类型和 QMenu 类型是不兼容的。
要解决这个问题,你需要使用 `qobject_cast` 函数来进行类型转换。`qobject_cast` 函数可以判断一个对象是否属于某个特定的类或其子类,如果是则返回相应类型的指针,否则返回空指针。
你可以将代码修改为以下形式:
```
QAction *action = qobject_cast<QAction*>(sender());
QMenu *m_pSetMenu_2 = qobject_cast<QMenu*>(action->parent());
```
这样就可以安全地将 QObject 类型的指针转换为 QMenu 类型的指针了。
阅读全文