C语言中用gtk输入文本

Entering text with gtk in C language

为什么我创建的对话中出现 Your Aggregate is(null):

我用了gtk_entry_get_text,谁能指出我这里做错了什么。

请尽快,因为我很快就要提交我的项目了。 任何好的教程 link 也将不胜感激。

return由 gtk_entry_get_text() 编辑的指针是临时的,不属于您,而属于 GtkEntry 本身。到调用 show_info() 时,该指针将变为无效。如果您以任何方式更改 GtkEntry,该指针也可能无效。最后,如果 GtkEntry 从未触发其 activate 信号(通过按 Enter),则全局变量仍将为 NULL。

通过不保存 gtk_entry_get_text() 中的 return 来解决此问题。相反,直接从 show_info() 中调用它。如何给 show_info() GtkEntry 传递给 gtk_entry_get_text().

取决于你

另一种方法是在enter_callback()中使用g_strdup()复制输入文本。完成后,您需要手动 g_free() 字符串。您仍然必须确保 enter_callback() 被调用。

我通过将 entry1、entry2 和 entry3 作为全局变量解决了这个问题。