我如何使用 gtk 响应
how can I use gtk responses
我有一个带有确定按钮的 gtk 对话框
我希望在按下 OK 按钮时执行特定功能,所以我使用了以下代码:
static struct data callback_params;
callback_params.entry = gtk_entry_new();
callback_params.file = config;
gtk_container_add(GTK_CONTAINER(content_area), callback_params.entry);
g_signal_connect(dialog,"response",G_CALLBACK (add_new_set),&callback_params);
g_signal_connect_swapped (dialog, "response",G_CALLBACK (gtk_widget_destroy),dialog);
gtk_window_set_modal (GTK_WINDOW(dialog), TRUE);
gtk_widget_show_all (dialog);
void add_new_set(GtkDialog *dialog, gint response_id, gpointer callback_params)
{
g_print ("%s\n",gtk_entry_get_text ((GtkEntry *)((struct data *) callback_params)->entry));
fputs("set \"",((FILE *)((struct data *) callback_params)->file));
fputs(gtk_entry_get_text ((GtkEntry *)((struct data *) callback_params)->entry),((FILE *)((struct data *) callback_params)->file));
fputs("\"",((FILE *)((struct data *) callback_params)->file));
}
工作正常,除了关闭 (x) 按钮也执行该功能,我知道这是 "response" 信号的正常行为,我希望 (x) 关闭对话框而不是 运行 函数
我相信这应该与 gtk 响应有关,例如:
GTK_RESPONSE_OK
GTK_RESPONSE_CLOSE
但我不确定如何在我的代码中使用它们。
谢谢
看看您的响应处理程序的签名:response_id
看起来很有希望,对吧?将其与 GTK_RESPONSE_OK(或其他值)进行比较以找出用户的决定。
我有一个带有确定按钮的 gtk 对话框 我希望在按下 OK 按钮时执行特定功能,所以我使用了以下代码:
static struct data callback_params;
callback_params.entry = gtk_entry_new();
callback_params.file = config;
gtk_container_add(GTK_CONTAINER(content_area), callback_params.entry);
g_signal_connect(dialog,"response",G_CALLBACK (add_new_set),&callback_params);
g_signal_connect_swapped (dialog, "response",G_CALLBACK (gtk_widget_destroy),dialog);
gtk_window_set_modal (GTK_WINDOW(dialog), TRUE);
gtk_widget_show_all (dialog);
void add_new_set(GtkDialog *dialog, gint response_id, gpointer callback_params)
{
g_print ("%s\n",gtk_entry_get_text ((GtkEntry *)((struct data *) callback_params)->entry));
fputs("set \"",((FILE *)((struct data *) callback_params)->file));
fputs(gtk_entry_get_text ((GtkEntry *)((struct data *) callback_params)->entry),((FILE *)((struct data *) callback_params)->file));
fputs("\"",((FILE *)((struct data *) callback_params)->file));
}
工作正常,除了关闭 (x) 按钮也执行该功能,我知道这是 "response" 信号的正常行为,我希望 (x) 关闭对话框而不是 运行 函数
我相信这应该与 gtk 响应有关,例如: GTK_RESPONSE_OK GTK_RESPONSE_CLOSE
但我不确定如何在我的代码中使用它们。
谢谢
看看您的响应处理程序的签名:response_id
看起来很有希望,对吧?将其与 GTK_RESPONSE_OK(或其他值)进行比较以找出用户的决定。