2010-07-12 70 views

回答

2

结账Gtk.PlugGtk.Socket。您需要在打开的每个标签中输入Gtk.Socket。然后使用GLib.Process函数之一产生一个进程,并在该进程中构建一个Gtk.Plug,其中包含您的WebView。然后,您需要一些进程间通信方式,例如将插头连接到套接字,并将命令从用户界面传递到webview(例如“使字体变大”)。

它看起来像Vala文档不包含非常多的解释,您可能想要查看C documentation以获取有关插头和插座如何工作的更多信息。

编辑:

您询问关于进程间通信的更多信息。有几种方法,我不确定哪一个最适合你。也许你可以试试GLib.Process.spawn_async_with_pipes()来启动你的子进程,并获取儿童标准输入和输出的文件描述符。然后您可以将这些文件描述符传递给GLib.IOChannel.unix_new()以在您的进程之间来回传递消息。

另一种方法是使用DBus,但这更复杂,文档也更少。

+0

你好,谢谢你的回答。 我不知道如何使用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

+0

查看我更新的答案。 – ptomato 2010-07-12 15:13:15

相关问题