5

我有带有 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 中选择文本?

4

3 回答 3

4

也许您希望 GtkEntry 获得焦点?

尝试这个:

gtk_widget_grab_focus (entry);

entry在这种情况下,指向您的 GtkEntry 小部件的指针在哪里。

该函数的文档可以在这里找到。

于 2012-04-30T22:37:09.650 回答
4

您应该使用此处记录的功能。

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

于 2016-03-25T20:16:21.113 回答
0

这是我使用get_iter_at_offsetandselect_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);
于 2020-12-20T04:38:06.557 回答