Pergunta

Usando D1 com phobos

Eu tenho um campo de entrada de texto, instância de gtk.Entry.Entry,

chamando setText("") levanta um erro de tempo de execução

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

Por quê? Parece ser um problema com D, eu tentei isso:

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

O programa terminou como a afirmação falhou.

Como posso resolver isso?

Foi útil?

Solução

Eu não acho D realmente diferencia entre "string vazia" e "cadeia nula". Uma solução barata seria setText (" ").

[editar] Nevermind que. É um bug no gtkD. no tronco / src / glib / Str.d (graças wm4 para encontrá-lo), linha de troca 147 para retornar ""; (Remover o .dup).

Outras dicas

Você deve escrever assert (! Empty é nulo) em vez de assert (vazio! = Null)

Eu costumava "\0" e parecia trabalho,

Eu não sei se algum personagem invisível entrou no campo de texto, mas isso é baseado na suposição de que uma string vazia em C é apenas \0

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top