QVariant无法区分QDateTime和QString

时间:2014-01-20 11:17:37

标签: c++ qt qstring qvariant qdatetime

我有QDateTime object我存储在QVariant中然后我用QVariant检查type()但是当我检查类型时它的行为很奇怪。

void MainWindow::Test()
{

    QDateTime myDate; // QDateTime;
    myDate.setDate(QDate::currentDate());

    QVariant myVariant(myDate);
    qDebug() << myVariant.canConvert(QMetaType::QDateTime); // return true 

    // here is the problem
    qDebug() << myVariant.canConvert(QMetaType::QString); // return true as well
}

1 个答案:

答案 0 :(得分:1)

canConvert表示只能进行转换,而不是该变体包含特定类型。要验证类型,请使用此方法:

qDebug() << (myVariant.type()==QVariant::DateTime);
qDebug() << (myVariant.type()==QVariant::String);