如何在 GTK 中使用 enter 传递条目?
How to pass the entries using enter in GTK?
我正在学习使用 GTK 编程,所以我有疑问...我怎样才能从一个条目跳到另一个条目?
我的光标在“a”字段中,所以我在这个字段中输入了一个文本,并在不使用 TAB 键的情况下传递给其他人。
有一个功能,一个信号?
// I'm with the cursor in this entry below
code_field = gtk_entry_new();
//so i want to press enter and jump to this
name_field = gtk_entry_new();```
您可以通过调用 gtk_container_set_focus_chain before GTK+ 3.24, and from 3.24 on, using the GtkWidget::focus
信号来设置小部件获得焦点的顺序。但通常 GTK+ 应该计算一个默认顺序,所以我们需要知道您如何将这些小部件添加到它们的容器中,以确定它为什么不符合您的需要。
您可以将 g_signal_connect() 与 gtk_widget_grab_focus()
一起使用
g_signal_connect Documentation
gtk_widget_grab_focus Documentation
示例:
假设我们有 3 个变量,您希望在 entry1 上按下 enter 时将焦点从 entry1 更改为 entry2。
GtkEntry *entry1;
GtkEntry *entry2;
void change_focus_func();
您应该为 entry1 创建一个 g_signal,并将其连接到 change_focus_func,将 entry2 作为 4º 参数传递。
g_signal_connect(GTK_ENTRY(entry1),"activate",G_CALLBACK(change_focus_func),entry2);
那么函数 change_focus_func 应该是这样的:
void change_focus_func(GtkWidget *Widget1, Widget2){
gtk_widget_grab_focus(Widget2);
}
我正在学习使用 GTK 编程,所以我有疑问...我怎样才能从一个条目跳到另一个条目?
我的光标在“a”字段中,所以我在这个字段中输入了一个文本,并在不使用 TAB 键的情况下传递给其他人。 有一个功能,一个信号?
// I'm with the cursor in this entry below
code_field = gtk_entry_new();
//so i want to press enter and jump to this
name_field = gtk_entry_new();```
您可以通过调用 gtk_container_set_focus_chain before GTK+ 3.24, and from 3.24 on, using the GtkWidget::focus
信号来设置小部件获得焦点的顺序。但通常 GTK+ 应该计算一个默认顺序,所以我们需要知道您如何将这些小部件添加到它们的容器中,以确定它为什么不符合您的需要。
您可以将 g_signal_connect() 与 gtk_widget_grab_focus()
一起使用g_signal_connect Documentation
gtk_widget_grab_focus Documentation
示例:
假设我们有 3 个变量,您希望在 entry1 上按下 enter 时将焦点从 entry1 更改为 entry2。
GtkEntry *entry1;
GtkEntry *entry2;
void change_focus_func();
您应该为 entry1 创建一个 g_signal,并将其连接到 change_focus_func,将 entry2 作为 4º 参数传递。
g_signal_connect(GTK_ENTRY(entry1),"activate",G_CALLBACK(change_focus_func),entry2);
那么函数 change_focus_func 应该是这样的:
void change_focus_func(GtkWidget *Widget1, Widget2){
gtk_widget_grab_focus(Widget2);
}