将 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 行更改为 return "";(删除 .dup)。

其他提示

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

我用了 "\0" 这似乎有效,

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top