我试图在Gtk中追踪一些代码。我已经在gtkentryaccessible.c中找到了这一部分:
g_signal_emit_by_name (accessible,
"text-changed::insert",
*position - length,
length);
但是我无法找到text-changed::insert
信号的回调。
我已经尝试了Google-ing并且我已经克隆了代码的git repo,并尝试使用grepping信号名称(带有和不带insert
详细信息)和所有带有{的回调<1}}或名称中的text
,但没有。
如何找到处理此信号发射的代码?
答案 0 :(得分:0)
来自 @José的评论让我意识到这个问题措辞多么糟糕,所以要澄清......
我有一个非常简单的c程序进行以下调用:
gtk_entry_set_text(GTK_ENTRY(entry), "thisisthetext");
我试图追踪这一行如何导致文本在控件中实际更新 - 可能一直到X的源代码。
所以,我跟着电话......
gtk_entry_set_text
实际上会调用gtk_editable_delete_text
,后跟gtk_editable_insert_text
。gtk_editable_insert_text
调用do_insert_text
。我跟着错误地并最终找到问题中的g_signal_emit_by_name(...)
函数。所以我对如何调用该函数感到困惑。答案当然不是。
不再需要这个问题。我已经将文本插入到btree中,仍然使用gtk代码,特别是gtktextbuffer.c:
_gtk_text_btree_insert (iter, text, len);