如何在gtk_recent_chooser_dialog_new小部件中获取所选文件的名称。下面演示文件来解释.....如何在gtk_recent_chooser_dialog_new小部件中获取文件名
#include <gtk/gtk.h>
//recentchooserdialog.c
/*
gcc -std=c11 -Wall -fmax-errors=10 -Wextra recentchooserdialog.c -o recentchooserdialog `pkg-config --cflags --libs gtk+-3.0 `
*/
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
gboolean multiple = FALSE;
//GList * files;
GtkRecentInfo *info;
gchar *chemin = NULL;
GtkWidget *recentchooserdialog = gtk_recent_chooser_dialog_new("RecentChooserDialog", NULL,
("_Cancel"), GTK_RESPONSE_CANCEL,
("_Open"), GTK_RESPONSE_OK, NULL);
gtk_recent_chooser_set_limit(GTK_RECENT_CHOOSER(recentchooserdialog),-1);
gtk_recent_chooser_set_show_tips(GTK_RECENT_CHOOSER(recentchooserdialog),TRUE);
gtk_recent_chooser_set_select_multiple(GTK_RECENT_CHOOSER(recentchooserdialog), multiple);
if (gtk_dialog_run(GTK_DIALOG(recentchooserdialog)) == GTK_RESPONSE_OK)
{
info = gtk_recent_chooser_get_current_item (GTK_RECENT_CHOOSER (recentchooserdialog));
if (multiple==TRUE)
{
/** how to get file names selected here **/
}
else
{
/** how to get one single filename selected here **/
// GtkRecentInfo *info;
info = gtk_recent_chooser_get_current_item (GTK_RECENT_CHOOSER (recentchooserdialog));
if (info)
g_print("structur info exists\n ");
/* below is not the good casting */
chemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(recentchooserdialog));
g_print("selected path %s\n",chemin);
}
gtk_recent_info_unref (info);
}
gtk_widget_destroy (recentchooserdialog);
return 0;
}
许多谷歌搜索行动之后....我没有找到任何东西 在了手gtk_file_chooser_dialog_new我发现
gtk_file_chooser_get_filename或gtk_file_chooser_get_filenames行动 其他上下文中是好的,我
void cb_open (GtkWidget *widget, gpointer user_data)
{
GtkWidget *dialog = NULL;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_OPEN;
dialog = gtk_file_chooser_dialog_new ("Ouvrir un fichier", NULL,
action,
("_Cancel"),
GTK_RESPONSE_CANCEL,
("_Open"),
GTK_RESPONSE_ACCEPT,
NULL);
if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
{
gchar *file_name = NULL;
file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
g_print("fichier ouvert : %s \n",file_name);
g_free (file_name), file_name = NULL;
}
gtk_widget_destroy (dialog);
}
你能帮我完成一个选择和多项选择的情况下 由于通过提前