Пустые значения в QtPropertyBrowser - PullRequest
0 голосов
/ 24 июня 2011

Я использую QtPropertyBrowser в качестве внешнего интерфейса для QSqlTableModel. Таким образом, каждое поле в таблице имеет свое собственное свойство в браузере. Это позволяет пользователю редактировать значения полей в базе данных. Но если значения в DB равны NULL, свойство вообще не отображается. Я пробовал что-то подобное

item->setValue(QVariant());

Но это приводит к segfault.

Нет проблем с строковыми полями: если это NULL, я просто вставляю QString ("") и поле значения в браузере свойств становится пустым Но что я могу сделать с числовыми типами данных?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Я сделаю догадку на основе документации QT.

Если ваше значение равно NULL, вы можете создать свойство, как если бы оно было группой, как показано ниже, но это не позволит вам редактировать его. Если нет, то создайте свойство, как вы это делали, и установите его значение как обычно.

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

groupTypeId , кажется, разрешает QVariant :: Invalid.

0 голосов
/ 24 июня 2011

В документации указано, что QVariant::QVariant() создает недопустимый вариант.Вместо этого я бы дал QVariant(0), который можно преобразовать в большинство других типов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...