如何在GtkEntry中选择文本

时间:2012-04-26 16:28:39

标签: c gtk gtkentry

我有GtkEntry的对话窗口。我希望在对话框窗口对用户可见后立即选择条目中的所有文本。我尝试了这个,但它不起作用,我看不到选择:

static void OnEntryShow(GtkWidget *entry, gpointer user_data)
{
     gtk_editable_select_region(GTK_EDITABLE(entry), 0, -1);
}
...
gtk_entry_set_text(GTK_ENTRY(myEntry), "text");
g_signal_connect(myEntry, "show", G_CALLBACK(OnEntryShow), NULL);
if (gtk_dialog_run(GTK_DIALOG(myDialog)) == GTK_RESPONSE_OK)
...

如何在GtkDialog可见后在GtkEntry中选择文字?

3 个答案:

答案 0 :(得分:3)

也许你想让GtkEntry抓住焦点?

试试这个:

gtk_widget_grab_focus (entry);

其中entry在这种情况下是指向GtkEntry小部件的指针。

可以找到该功能的文档here

答案 1 :(得分:3)

您应该使用记录的here函数。

text_entry.select_region(0,2)会选择前两个字符,而(0, -1)会选择整个文字。

答案 2 :(得分:0)

这是我使用 get_iter_at_offsetselect_range 函数用于 gtkmm 的解决方案。

Gtk::TextIter match_start = m_textBuffer->get_iter_at_offset(0);
Gtk::TextIter match_end = m_textBuffer->get_iter_at_offset(-1); // -1 to select all
m_textBuffer->select_range(match_start,match_end);