我有一个问题。 在我的 *.cpp 中,我有以下功能:
void QcWMenuBar::setItems( const QVariantList & items )
{
clear();
Q_FOREACH( const QVariant & item, items )
//addMenu( item );
}
Qt 有许多不同的 addMenu() 函数,因此我的程序不知道为 QVariant 类型使用什么函数。
在这种情况下,我需要一个 addMenu(QMenu * item)
。
如何告诉 Qt 使用这个函数?
最佳答案
您必须从变体中获取正确类型的值:
void QcWMenuBar::setItems(const QVariantList & items)
{
clear();
for (auto & item: items) {
Q_ASSERT(item.canConvert<QMenu*>());
addMenu(item.value<QMenu*>());
}
}
关于c++ - 从 QVariant 参数转换时如何选择方法重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39043424/