将自定义 GTK# 小部件添加到 Glade 目录

Adding custom GTK# widget to Glade catalog

我使用 GTK# 3 工具包在 C# 中创建了一个自定义小部件(使用我自己的绘图)。 现在我想在 Glade 设计器中使用它。 是否可以将此小部件添加到 Glade 调色板?

似乎这个文档: https://developer.gnome.org/gladeui/unstable/catalogintro.html 可用于将用 C/C++ 编写的小部件添加到 Glade 调色板,但是对于用 C# 编写的小部件获得相同结果的正确方法是什么?

谢谢。

这可能是不可能的。处理它的方法是用 C 语言编写一个垫片库,该库使用 libmono 与您的 C# 小部件进行互操作。 Here is a link to Mono's documentation on how to do that. 您的 shim 库的入口点将列在 Glade 目录的 <init-function> 元素中。

或者,您可以 "fake" Glade 目录中的小部件 类;它们的属性和信号将出现(尽管您必须手动将它们写入目录文件中。)如果它们是容器小部件,您将无法向它们添加子小部件。它们只会在 Glade 中显示为灰色框。您可以按照 Glade 文档 this page 中的描述,将 <glade-widget-class> 元素添加到目录中。