使用C语言的gtk输入文本

时间:2015-12-18 10:41:40

标签: c text gtk

为什么我在我创建的对话中获得Your Aggregate is(null):

我使用gtk_entry_get_text,任何人都可以指出我在这里做错了什么。

请尽快提交我的项目。 任何好的教程链接也将不胜感激。

2 个答案:

答案 0 :(得分:1)

gtk_entry_get_text()返回的指针是临时的,不归你所有,而是由GtkEntry本身拥有。到调用show_info()时,该指针将变为无效。如果以任何方式更改GtkEntry,该指针也可能无效。最后,如果GtkEntry从不触发其activate信号(按Enter键),则全局变量仍为NULL。

通过不保存gtk_entry_get_text()的回报来解决此问题。而是直接从show_info()内调用它。由您决定如何将show_info() GtkEntry传递给gtk_entry_get_text()

另一种方法是使用g_strdup()中的enter_callback()制作条目文本的副本。完成后,您需要手动g_free()字符串。您仍然需要确保调用enter_callback()

答案 1 :(得分:0)

我通过将entry1,entry2和entry3作为全局变量来解决问题。