在Qt5中,我使用一个QWidgetAction创建了一个定制的菜单条目,然后我使用setMenu方法向它添加了一个子菜单。但是在Qt6中,setMenu方法已经被删除,如何在Qt6中实现这一点?如何在菜单项中使用自定义小部件()和子菜单创建菜单项?
谢谢
发布于 2022-07-13 07:18:55
这在这上游Qt变化中已经过时。
我个人担心,这已经过时了,这使得API文档阅读器一开始毫无头绪。
更深层次的研究表明,淘汰这种方法的原因似乎是QAction从QtWidgets迁移到了QtGui。这是为了在QtWidgets和QtQuick世界中都有通用操作。在这两个世界中重复这一点是次优的。到目前一切尚好。这不足为奇。
还值得一提的是,API尚未被删除。这是不可取的。我想,如果没有人像你这样提出来,或者有一个合适的替代者,它就永远不会被移除。所以,请放心,它不会很快消失。
现在,对于将来,QWidgetAction是用从createWidget返回的任何部件添加到的容器中表示的。
您似乎仍然可以使用这些API:
void QWidget::addAction(QAction *action)
和
QAction *QMenu::menuAction() const
如果这仍然没有涵盖您的用例,我建议打开一个针对Qt bug跟踪器的Jira机票,以建议一个QMenu::setMenuInAction方法来替换过时的。
https://stackoverflow.com/questions/72943053
复制相似问题