我正在使用 GTK+ 创建 C++ 程序。为了选择文件,我使用本机文件选择器,因为 gtk 文件选择器存在内存泄漏。
这是我的问题:如何为 GTK+ 中的本机文件选择器设置默认文件名(保存时)以及如何为其设置文件过滤器 - 以便能够仅打开或保存特定的文件扩展名?
我的程序在 Win32 上运行。示例代码:
static void cb_SaveFileAs(GtkWidget *caller)
{
GtkWindow *parent_window = GTK_WINDOW(caller);
GtkFileChooserNative *native;
GtkFileChooserAction action = GTK_FILE_CHOOSER_ACTION_SAVE;
gint res;
native = gtk_file_chooser_native_new("Save File",
parent_window,
action,
"_Save",
"_Cancel");
res = gtk_native_dialog_run(GTK_NATIVE_DIALOG(native));
if (res == GTK_RESPONSE_ACCEPT)
{
char *filename;
GtkFileChooser *chooser = GTK_FILE_CHOOSER(native);
filename = gtk_file_chooser_get_filename(chooser);
// save the file
save_to_file(filename);
g_free(filename);
}
g_object_unref(native);
}
Run Code Online (Sandbox Code Playgroud)