在Webkit视图中嵌入本机窗口小部件

时间:2016-06-04 04:14:49

标签: c# c user-interface webkit gtk

这是我一直试图找出的,如果有可能以及如何做到这一点。我希望能够在Webkit视图中嵌入一个Gtk +控件/小部件,作为网页的一部分进行集成。例如,我希望能够在加载到Gtk +应用程序中的Webkit实例上的程序生成的网页中间集成特定控件。如果可能的话,我想把它作为DOM的一部分。

我的目的是使用webview作为UI的某些部分的基础,但是有一些特定的控件需要是原始的Gtk +。

当处理表单中的控件时,例如,发生两件事之一,Webkit-gtk显式地将它们呈现为Gtk +控件,或者使用实际的Gtk +控件并嵌入它们。如果现实是第二种情况,那么实际上也很容易用其他控件来实现。

我正在使用GTK#在C#(单声道)中开发应用程序,但我也希望如果可以直接在Gtk +中进行,那么最终可能会在GTK中进行#。

2 个答案:

答案 0 :(得分:0)

您可能需要查看Broadway。这是GTK +的Web后端,并使用HTML5显示GTK +小部件。您可能必须在网页中使用完全GTK +,但这似乎是制作包含GTK +元素的网页的唯一方法。

答案 1 :(得分:0)

以前在WebKitGTK 1.x中可以这样做,但由于WebKitGTK已成为多进程,因此该功能已被删除。

然而,你可能很幸运,因为GTK#使用相当旧版本的库。我无法告诉您使用的WebKitGTK版本,但如果它有create-plugin-widget信号,那么您应该可以这样做。

我之前从未使用过此信号,但我相信它的工作方式如下:您在HTML中添加了<object>标记,然后当webview需要嵌入您的小部件时会发出信号。在信号处理程序中,您可以创建窗口小部件,并将其作为信号处理程序的返回值传递。