打开文件选择器对话框时的Glib-GIO-ERROR

时间:2014-06-23 15:58:09

标签: windows runtime-error glib gtk3 glade

我在Windows 7中使用GTK3,codeblcks IDE,glade3 ......

在我的应用程序中,我有一个按钮,当点击它应该打开一个gtk_file_chooser_dialog ... 但是给出了填充错误..

Glib-GIO-ERROR ** 系统上未安装任何GSettings架构

static void on_save_clicked(GtkWidget *widget,gpointer data)
{
GtkWidget *dialog;
//dialog=gtk_file_chooser_dialog_new("Save it",GTK_WINDOW(gtk_builder_get_object(builder,"mainwindow")),GTK_FILE_CHOOSER_ACTION_SAVE,GTK_STOCK_OK,GTK_RESPONSE_OK,GTK_STOCK_CANCEL,GTK_RESPONSE_CANCEL);
//dialog=GTK_FILE_CHOOSER_DIALOG(gtk_builder_get_object(builder,"filechooserdialog"));
gtk_widget_show_all(dialog);
gint resp=gtk_dialog_run(GTK_DIALOG(dialog));
if(resp==GTK_RESPONSE_OK)
g_print("%s\n",gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)));
}

单击按钮时,我使用g_signal_connect(...)调用此函数...

我无法理解这个问题......

3 个答案:

答案 0 :(得分:2)

尝试打开FileChooserDialog时出现了同样的错误。

    (lancer_ihm.py:1047004): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion 'source != NULL' failed

    (lancer_ihm.py:1047004): GLib-GIO-ERROR **: No GSettings schemas are installed on the system
    Trace/breakpoint trap (core dumped)

我在Linux上使用python3运行Gtk3接口。 Gtk3及其所有依赖项都是从源代码安装的。

我在这个论坛http://forum.tinycorelinux.net/index.php?topic=13699.0

找到了解决方案

我只是设置了XDG_DATA_DIRS变量,其中包含gtk模式文件所在的路径,并且它可以正常工作。

    $ ls /home/user1/ctcils/dusserm/applications/gtk/3.12.1/share/glib-2.0/schemas/
    gschemas.compiled         org.gtk.exampleapp.gschema.xml             org.gtk.Settings.FileChooser.gschema.xml
    org.gtk.Demo.gschema.xml  org.gtk.Settings.ColorChooser.gschema.xml

    $ export XDG_DATA_DIRS=/Produits/publics/x86_64.Linux.RH6/glib/2.40.0/share/:/home/user1/ctcils/dusserm/applications/gtk/3.12.1/share/ 

答案 1 :(得分:0)

那里可能没有什么错误。

  1. 如果您对两者进行了评论,则dialog.show_all()将产生错误,因为它尚未实例化您要求显示。
  2. 如果使用第一个,对象Gtk.FileChooserDialog param必须以NULL结尾(在c中),阅读文档
  3. 如果您使用第二个,请检查您的林间空地窗口中的林间空地信号属性
  4. 检查您的gtk安装

答案 2 :(得分:0)

引自this StackOverflow answer

  

似乎你不是那个有这个问题的人,而是also happens on Windows on MinGW。幸运的是,那个人提出了一个解决方案:

     
    

事情,因为我正在运行测试小部件示例(我     用gtksourceview-3.0.0使用MSVC构建,是我需要编译的     org.gtk.Settings.FileChooser.gschema.xml文件(来自GTK + -3.x,在     $(srcroot)/gtk)使用来自GLib的glib-compile-schemas实用程序,     这将在同一文件夹中生成gschemas.compiled

         

之后,将gschemas.compiled文件放在此文件夹中:     $(parent_folder_of_the_gtk3_dll)\share\glib-2.0\schemas     一个将被设置为使用gtkfilechooser而不是令人费解的

         

[GLib-GIO-ERROR **:设置架构'org.gtk.Settings.FileChooser'     未安装]错误。

         

我将添加到我的GLib项目文件中以编译glib-compile-schemas     实用程序并添加到我的GTK + -3.x项目文件中进行编译     很快就会org.gtk.Settings.FileChooser.gschema.xml