Вопрос

Использование D1 с помощью phobos

У меня есть поле ввода текста, экземпляр gtk.Entry.Entry,

зовущий setText("") выдает ошибку во время выполнения

Gtk-CRITICAL **: gtk_entry_set_text: assertion `text != NULL' failed

Почему?Кажется, это проблема с D, я попробовал это:

string empty = "";
assert (empty != null);
my_entry.setText(empty)

Программа завершилась из-за сбоя утверждения.

Как я могу обойти это?

Это было полезно?

Решение

Я не думаю, что D действительно проводит различие между "пустой строкой" и "нулевой строкой".Дешевым обходным путем был бы setText(" ").

[править] Не обращай на это внимания.Это ошибка в gtkD.в trunk/src/glib/Str.d (спасибо wm4, что нашел его) измените строку 147, чтобы вернуть "";(удалите .dup).

Другие советы

Вы должны написать assert(empty !равно null) вместо assert(empty != null)

Я использовал "\0" и, похоже, это сработало,

Я не знаю, попал ли какой-либо невидимый символ в текстовое поле, но это основано на предположении, что пустая строка в C - это просто \0

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top