Qmenu addMenu回报派生类对象

问题描述:

我这是从QMenu派生的类,但IA中号无法返回的派生类对象Qmenu addMenu回报派生类对象

myMenu * editMenu = new myMenu(); // myMenu is derived from QMenu 
myMenu *preferenceMenu = new myMenu(); 
preferenceMenu = editMenu->addMenu(tr("&Preferences")); // this shows error 

QMenu *preferenceMenu = new QMenu(); 
preferenceMenu = editMenu->addMenu(tr("&Preferences")); // this works fine 

QMenu::addMenu返回一个指向QMenu ...

QMenu *QMenu::addMenu(const QString &title); 

所以隐含低垂到myMenu *将在下面的失败...

myMenu *preferenceMenu = editMenu->addMenu(tr("&Preferences")); 

如果你想添加自己的自定义的子菜单类型,然后使用提供了功能QMenu::addMenu overload ...

auto *preferences_menu = new myMenu(tr("&Preferences"); 
editMenu->addMenu(preferences_menu); 
+0

如何我沮丧的,如果你想在“首选项”菜单中的QString设置为QMenu – Sijith

+0

成为'myMenu'而不是简单地'QMenu',那么你需要使用我所展示的方法。为什么不能为你工作?您尝试使用的方法将始终创建一个简单的'QMenu',它可以*永远不会被贬低到其他任何东西。 –