什么是“未处理的异常:GLib.GException:未处理的标签:'需要'”是什么意思?

时间:2009-11-24 01:16:29

标签: c# windows gtk gtk#

我正在尝试让我的Linux Gtk#应用程序在Windows上运行。当我尝试运行它时,我收到此错误消息:

  

未处理的异常:GLib.GException:   未处理的标签:'要求'

     

at Gtk.Builder.AddFromFile(String   文件名)

     

在Interface.MainWindow..ctor()

     

在[我的项目名称] .MainClass.Main(String []   args)在c:\ Path \ To \ Main.cs:第10行

尝试从我的Glade文件构建界面时似乎正在发生。我已经检查过,林间空地文件的路径是正确的。可能出现什么问题?

以下是一些重现问题的代码:

using System;
using Gtk;

namespace TestGtk {
    class MainClass {
        public static void Main (string[] args)
        {
            Application.Init();

            string gladefile = @"C:\path\to\gladefile.glade";
            Builder builder = new Builder();
            builder.AddFromFile(gladefile);

            Application.Run();
        }
    }
}

3 个答案:

答案 0 :(得分:1)

您正在使用GtkBuilder加载GladeXML文件。 GtkBuilder具有不同的XML格式,与GladeXML不兼容(它更通用)。如果使用glade-3设计UI,则可以选择保存为GtkBuilder XML或GladeXML。此外,glade还有一个名为gtk-builder-convert的实用程序,可用于将GladeXML转换为GtkBuilder XML。

所以,有两种选择:

  1. 使用glade-3并以GtkBuilder格式保存您的UI
  2. 使用gtk-builder-convert实用程序

答案 1 :(得分:1)

奇怪......我不知道为什么在Windows上GTK#不支持requires。无论如何,我会尝试从<requires ... />删除gladefile.glade代码。

答案 2 :(得分:0)

这很可能意味着您的Glade文件已损坏或其中有一些奇怪。