我有一个 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
}
最佳答案
canConvert
表示仅可以进行转换,而不是包含特定类型的变体。要验证类型,请使用这种方法:
qDebug() << (myVariant.type()==QVariant::DateTime);
qDebug() << (myVariant.type()==QVariant::String);
关于c++ - QVariant 无法区分 QDateTime 和 QString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21232593/