我想使用webkit在Vala中创建一个Web浏览器。如何创建一个多进程webkitgtk应用程序(Vala)?
但是,我不知道如何使它成为多进程。
我希望每个选项卡都有自己的进程。
我该如何使用Vala和Gtk +来做到这一点。
感谢您的回答。
我想使用webkit在Vala中创建一个Web浏览器。如何创建一个多进程webkitgtk应用程序(Vala)?
但是,我不知道如何使它成为多进程。
我希望每个选项卡都有自己的进程。
我该如何使用Vala和Gtk +来做到这一点。
感谢您的回答。
结账Gtk.Plug
和Gtk.Socket
。您需要在打开的每个标签中输入Gtk.Socket
。然后使用GLib.Process
函数之一产生一个进程,并在该进程中构建一个Gtk.Plug
,其中包含您的WebView
。然后,您需要一些进程间通信方式,例如将插头连接到套接字,并将命令从用户界面传递到webview(例如“使字体变大”)。
它看起来像Vala文档不包含非常多的解释,您可能想要查看C documentation以获取有关插头和插座如何工作的更多信息。
编辑:
您询问关于进程间通信的更多信息。有几种方法,我不确定哪一个最适合你。也许你可以试试GLib.Process.spawn_async_with_pipes()
来启动你的子进程,并获取儿童标准输入和输出的文件描述符。然后您可以将这些文件描述符传递给GLib.IOChannel.unix_new()
以在您的进程之间来回传递消息。
另一种方法是使用DBus,但这更复杂,文档也更少。
你可能想要使用GtkPlug看到这个discussion in Vala-list(和gtk forum)。
你好,谢谢你的回答。 我不知道如何使用Glib.Process。 我遵循有关Plugs和Sockets的教程(gtkmm book - http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-plugs-sockets-example.html.en),但传输方式窗口ID不是很合适(在一个文件中)。 那么,如何使用Glib.Process在两个进程之间进行通信? 我这样做启动其他进程(C++): 列表 myList; myList.push_back(“../ Plug/Plug”); Glib :: spawn_async(“。”,myList); 它启动了这个过程,但是,我想在它们之间进行通信。 如何? 感谢您的回答。 –
antoyo
2010-07-12 14:42:44
查看我更新的答案。 – ptomato 2010-07-12 15:13:15