在D中,如何传递一个空字符串? (对gtkD)

时间:2009-05-31 05:14:16

标签: gtk d string gtkd

将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)

程序因断言失败而终止。

我该如何解决这个问题?

3 个答案:

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

的假设