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)最初の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 に答える