2010-07-12 66 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

相關問題