Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ QtPropertyBrowser中的空白值_C++_Qt_Qt4 - Fatal编程技术网

C++ QtPropertyBrowser中的空白值

C++ QtPropertyBrowser中的空白值,c++,qt,qt4,C++,Qt,Qt4,我使用QtPropertyBrowser作为QSqlTableModel的前端。所以表中的每个字段在浏览器中都有自己的属性。它允许用户编辑数据库中字段的值。但是,如果DB中的值为NULL,则该属性根本不会出现。我试过类似的东西 item->setValue(QVariant()); 但它的结果是错误的 字符串字段没有问题:如果为空,我只需插入QString,属性浏览器中的值字段将变为空。但是我能用数字数据类型做什么呢 谢谢。声明QVariant::QVariant构造了无效的变量。我只是

我使用QtPropertyBrowser作为QSqlTableModel的前端。所以表中的每个字段在浏览器中都有自己的属性。它允许用户编辑数据库中字段的值。但是,如果DB中的值为NULL,则该属性根本不会出现。我试过类似的东西

item->setValue(QVariant());
但它的结果是错误的

字符串字段没有问题:如果为空,我只需插入QString,属性浏览器中的值字段将变为空。但是我能用数字数据类型做什么呢

谢谢。

声明QVariant::QVariant构造了无效的变量。我只是给它QVariat0,它可以转换成大多数其他类型。

我将根据QT文档进行猜测

如果您的值为NULL,您可以创建一个属性,就像下面的组一样,但这不允许您编辑它。如果没有,则按照您所做的操作创建一个属性,并像往常一样设置其值

//Create a property
QtVariantProperty *nullType = variantManager->addProperty(
      QtVariantPropertyManager::groupTypeId(), "Your property name");

似乎允许QVariant::无效。

谢谢您的回答。但也有一些不明确的地方:用户无法理解0是表示NULL还是之前设置的具体值;即使在整数字段。奇怪。这只是一个快速猜测,自从我上次使用属性编辑器已经有一段时间了。正如@OrcunC所指出的,一个无效的变量似乎完全无效:如果无法访问您的代码,那么剩下的就是我猜想您指向该项的指针在某种程度上是无效的。当然,您可以使用调试器进入属性编辑器;由于源代码来自QtSolutions,所以在供应商提供代码之前,源代码应该是可用的;您好,您找到解决方案了吗?我面临着同样的问题-@卢德克伏特加;我的同事通过以下方式修改QtProperty框架的源代码解决了这个问题:如果一个属性可以为NULL,他将创建一个带有NULL复选框的特殊编辑器。如果用户将其设置为选中-该属性将被禁用。感谢您的回复。出于我的目的,我还必须重新实现QtPropertBrowser框架的一部分,因此扩展到空复选框是可能的,也是一个好主意。谢谢