我想使用 webkit 在 Vala 中制作一个网络浏览器。
但是,我不知道如何使它成为多进程。
我希望每个选项卡都有自己的进程。
我如何使用 Vala 和 Gtk+ 来做到这一点。
感谢您的回答。
签出Gtk.Plug
和Gtk.Socket
。您需要Gtk.Socket
在打开的每个选项卡中添加一个。然后使用其中一个GLib.Process
函数生成一个进程,并在该进程中构造一个Gtk.Plug
包含您的WebView
. 然后,您将需要某种进程间通信方式,一方面将插头连接到套接字,并将命令从用户界面传递到 web 视图(例如“使字体变大”)。
看起来 Vala 文档没有包含太多解释,您可能需要查看C 文档以获取有关插头和插座如何工作的更多信息。
编辑:
您要求提供有关进程间通信的更多信息。有几种方法,我不确定哪一种最适合您。也许您可以尝试GLib.Process.spawn_async_with_pipes()
启动您的子进程并获取子进程标准输入和输出的文件描述符。然后,您可以传递这些文件描述符以GLib.IOChannel.unix_new()
在进程之间来回传递消息。
另一种方法是使用 DBus,但这更复杂,文档也更少。
您可能想使用GtkPlug ,请参阅Vala-list(和gtk 论坛)中的此讨论。