我有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中选择文字?
答案 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_offset
和 select_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);