0

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

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
}
4

1 回答 1

1

canConvert仅表示可以进行转换,而不是表示变体包含特定类型。要验证类型,请使用以下方法:

qDebug() << (myVariant.type()==QVariant::DateTime);
qDebug() << (myVariant.type()==QVariant::String);
于 2014-01-20T11:44:02.773 回答