QtPropertyBrowser中的空白值

时间:2011-06-24 12:49:27

标签: c++ qt qt4

我正在使用QtPropertyBrowser作为QSqlTableModel的前端。因此表中的每个字段在浏览器中都有自己的属性。它允许用户编辑数据库中的字段值。但是如果DB中的值为NULL,则属性根本不显示。我尝试了类似的东西

item->setValue(QVariant());

但它会导致segfault。

字符串字段没有问题:如果它是NULL我只是插入QString(“”)并且属性浏览器中的值字段变为空白。但是我可以用数字数据类型做什么呢?

谢谢。

2 个答案:

答案 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。