C中的gtk2:文件选择器过滤器的小部件

问题描述

我使用 gtk_file_chooser_dialog_new 构建了一个文件选择器。然后我在文件选择器中添加了一些文件过滤器。如何将 changed signal 连接到过滤器?

阅读源代码后,过滤器是结构体gtk combo box 中名为filter_combo_GtkFileChooserDefault 小部件。但似乎 _GtkFileChooserDefault 是在内部使用的。我找不到如何连接小部件 filter_combo

file_selector = gtk_file_chooser_dialog_new("Save \"result of seismic load of NZ - 1170 \" File",(GtkWindow *)parent_window,GTK_FILE_CHOOSER_ACTION_SAVE,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL,GTK_STOCK_SAVE,GTK_RESPONSE_ACCEPT,NULL);

filter = gtk_file_filter_new();
gtk_file_filter_set_name(filter,"TXT Files (*.txt)");
gtk_file_filter_add_pattern(filter,"*.txt");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_selector),filter);

filter = gtk_file_filter_new();
gtk_file_filter_set_name(filter,"TEX Files (*.tex)");
gtk_file_filter_add_pattern(filter,"*.tex");
gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(file_selector),filter);
gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(file_selector),filter);

/* user widget */
entry = make_check_button ("Output by ULS and SLS table",2);
/* I want to connect "changed singal" with the filter,but I failed.
 * the error is `'GtkWidget' {aka 'struct _GtkWidget'} has no member named 'filter_combo'`
 */
g_signal_connect((GtkFileChooser *)(file_selector)->filter_combo,"changed",G_CALLBACK(filter_changed),entry);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)