سؤال

باستخدام 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 يميز حقا بين "سلسلة فارغة" و "سلسلة فارغة". الحل البديل الرخيص سيكون starnext ("").

تحرير] لا يحدث ذلك. إنه خطأ في GTKD. في Trunk / SRC / GLIB / Str.D (شكرا WM4 للعثور عليها)، تغيير خط 147 للعودة ""؛ (إزالة .dup).

نصائح أخرى

يجب أن تكتب تأكيدا (فارغ! فارغ) بدلا من تأكيد (فارغ! = NULL)

انا إستعملت "\0" ويبدو أن العمل،

لا أعرف ما إذا كان أي شخصية غير مرئية دخلت في حقل النص، ولكن هذا يعتمد على افتراض أن سلسلة فارغة في C هي فقط \0

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top