解决Qt单元测试自定义类型报错的问题

在使用QTest::addColumn添加自定义类型FulldisDataName时遇到编译错误,错误提示涉及QMetaType。通过查阅资料发现,需要为自定义类型声明QMetaType,使用Q_DECLARE_METATYPE宏定义FulldisDataType、QList<IndexStForQuery>和FulldisDataName,从而解决报错问题。
摘要由CSDN通过智能技术生成
  QTest::addColumn< QList<IndexStForQuery> >("idxinfolist");
  QTest::addColumn< FulldisDataType>("datatype");

  QTest::addColumn< FulldisDataName>("dataname");

编译报错如下:

/opt/linux_virtual/qt/qt-4.8.6/pc/include/QtCore/qmetatype.h:169: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<QList<IndexStForQuery> >'

/opt/linux_virtual/qt/qt-4.8.6/pc/include/QtCore/qmetatype.h:169: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<FulldisDataType>'

/opt/linux_virtual/qt/qt-4.8.6/pc/include/QtCore/qmetatype.h:169: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<FulldisDataName>'


后来查阅资料,

需要将自定义类型声明为QMetaType

在定义这个类的头文件中使用宏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值