我正在使用QtPropertyBrowser作为QSqlTableModel的前端。因此表中的每个字段在浏览器中都有自己的属性。它允许用户编辑数据库中的字段值。但是如果DB中的值为NULL,则属性根本不显示。我尝试了类似的东西
item->setValue(QVariant());
但它会导致segfault。
字符串字段没有问题:如果它是NULL我只是插入QString(“”)并且属性浏览器中的值字段变为空白。但是我可以用数字数据类型做什么呢?
谢谢。
答案 0 :(得分:0)
documentation 指出QVariant::QVariant()
构造了无效的变体。我只想给它QVariant(0)
,它可以转换为大多数其他类型。
答案 1 :(得分:0)
我会根据QT文档做出猜测。
如果您的值为NULL,则可以创建一个属性,就好像它是一个组,如下所示,但这不允许您编辑它。如果没有,那么就像你一直在做的那样创建一个属性并像往常一样设置它的值。
//Create a property
QtVariantProperty *nullType = variantManager->addProperty(
QtVariantPropertyManager::groupTypeId(), "Your property name");
groupTypeId似乎允许QVariant :: Invalid。