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