我有问题。 在我的* .cpp中,我有以下功能:
void QcWMenuBar::setItems( const QVariantList & items )
{
clear();
Q_FOREACH( const QVariant & item, items )
//addMenu( item );
}
Qt有许多不同的addMenu()函数,因此我的程序不知道QVariant类型使用什么函数。
在这种情况下,我需要addMenu(QMenu * item)
。
如何告诉Qt使用此功能?
答案 0 :(得分:2)
您必须从变体中获取正确类型的值:
void QcWMenuBar::setItems(const QVariantList & items)
{
clear();
for (auto & item: items) {
Q_ASSERT(item.canConvert<QMenu*>());
addMenu(item.value<QMenu*>());
}
}