如何在从QVariant参数转换时选择方法重载
How to choose a method overload when converting from a QVariant argument?
我有一个问题。在我的*.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*>());
}
}
相关文章:
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- 从长(且合理)稀疏向量中选择随机元素的最有效方法是什么?
- 基于类实例的自动方法选择
- 模板类中的动态模板方法选择
- 我将如何通过抽象类传递虚拟方法,但可以选择不重写
- 根据编译时条件在类型之间选择类型的惯用方法
- 通过方法返回的重新选择参考
- 有没有一种方法可以在基于枚举的可变参数模板函数之间进行选择,这比将函数包装在结构中更简单
- 根据输入类型选择正确的结构方法
- 有什么方法可以让用户选择要输入哪个变量
- 为什么我们选择"bounding box"方法来填充三角形?
- 在Boost Graph库中选择给定顶点的随机进出邻居的有效方法
- 在游戏地图上选择100种情况的最佳方法(MFC,CPoint)
- C++模板方法选择正确的数据打印方式
- 选择正确功能的更好方法
- 如何使用模板参数选择方法调用
- 如何在编译时选择方法
- 在运行时选择方法实现
- 如何让编译器为派生类选择方法的非模板版本
- 如何在从QVariant参数转换时选择方法重载