5

将 D1 与火卫一搭配使用

我有一个文本输入字段,实例gtk.Entry.Entry

调用setText("")引发运行时错误

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

为什么?这似乎是D的问题,我试过这个:

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

程序因断言失败而终止。

我该如何解决这个问题?

4

3 回答 3

5

我认为 D 并没有真正区分“空字符串”和“空字符串”。一个便宜的解决方法是 setText(" ")。

[编辑] 没关系。这是 gtkD 中的一个错误。在trunk/src/glib/Str.d(感谢wm4找到它)中,将第147行更改为返回“”;(删除 .dup)。

于 2009-05-31T05:33:02.413 回答
3

你应该写 assert(empty !is null) 而不是 assert(empty != null)

于 2009-05-31T23:19:33.460 回答
1

我用过"\0",好像还可以

我不知道是否有任何不可见字符进入文本字段,但这是基于假设 C 中的空字符串只是\0

于 2009-05-31T05:38:52.980 回答