c++ - QVariant 无法区分 QDateTime 和 QString

标签 c++ qt qstring qvariant qdatetime

我有一个 QDateTime object我将其存储在 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
}

最佳答案

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

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

关于c++ - QVariant 无法区分 QDateTime 和 QString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21232593/

相关文章:

c++ - 如何使用 Cereal 序列化 json 对象而不将其包含在子对象中

c++ - 如何使用Ct Qt解析此JSON?

qt - QFileDialog::DontUseNativeDialog 不起作用

c++ - Qt安装不会复制文件

c++ - 如何将值插入 URL?

c++ - qstring 到 qchar 特殊字符

c++ - 关于 C++ 模板和显式声明

c++ - 将调用者姓名传递到模板函数中的惯用方式

c++ - 如何使用共享基类遍历std::tuple的元素?

c++ - setText 方法替换现有文本,追加方法在新行之后输入新文本;我如何将 QString 背靠背连接起来?