canConvert只是报告QVariant进行两个类型之间转换的能力,例如QString和Int类型之间的转换,重点是类型。
convert判断的是QVariant进行两个类型的数据之间转换的能力,例如“123”和123之间的转换,重点是数据。
QString str1 = "Qt5.7";
QVariant var1 = str1;
QString str2 = "123";
QVariant var2 = str2;
qDebug()<<var1.canConvert(QVariant::Int);
qDebug()<<var1.convert(QVariant::Int);
qDebug()<<var1.toString();
qDebug()<<var2.canConvert(QVariant::Int);
qDebug()<<var2.convert(QVariant::Int);
qDebug()<<var2.toString();
输出结果为:
true
false
"0"
true
true
"123"
使用canConvert()函数返回true的数据类型组合如下:
更多知识请翻阅《Qt Creator快速入门》的《7.2.5 QByteArray和QVariant》。