将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)
程序因断言失败而终止。
我该如何解决这个问题?
答案 0 :(得分:5)
我不认为D真正区分“空字符串”和“空字符串”。一个廉价的解决方法是setText(“”)。
[编辑]没关系。这是gtkD中的一个错误。在trunk / src / glib / Str.d中(感谢wm4查找),更改第147行返回“”; (删除.dup)。
答案 1 :(得分:3)
你应该写assert(empty!is null)而不是assert(empty!= null)
答案 2 :(得分:1)
我使用"\0"
它似乎有效,
我不知道是否有任何不可见的字符进入文本字段,但这是基于C中的空字符串只是\0