QVariant не может различить QDateTime и QString

У меня есть 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 ответ

canConvert означает только то, что преобразование возможно, но не этот вариант содержит определенный тип. Для проверки типа используйте этот подход:

qDebug() << (myVariant.type()==QVariant::DateTime);
qDebug() << (myVariant.type()==QVariant::String);
Другие вопросы по тегам