我想使用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