Barra laterale

programmazione:gtk:creare_un_browser_web_con_webkitgtk

Creare un browser web con WebKitGTK+

Autore: Fabio Di Matteo
Ultima revisione: 21/10/2011

WebKitGTK+ e' il porting sulle Gtk+ del famoso motore di rendering Webkite grazie ad esso vedremo come realizzare velocemente un semplice Browser per web.
Ecco il risultato:

Il codice commentato

Il codice sottostante altro non fa che visualizzare una finestra contenenteo una pagina web grazie a webkit. La finestra viene realizzata grazie alle librerie Gtk+ .

microb.c

#include <webkit/webkit.h>
#include <JavaScriptCore/JavaScript.h>
 
 
int main (int    argc,      gchar* argv[])
{
	//Gli oggetti della nostra gui
	GtkWidget* window;
	GtkWidget* vbox;
	GtkWidget* scrolled;
 
	//L'area che usera' webkit per il rendering
	GtkWidget* web_view;
 
 
 
	//Inizializzo i thread di gtk
	if (!g_thread_supported ())
	g_thread_init (NULL);
	gtk_init_check (&argc, &argv);
 
	//Creo la finestra, gli assegno un titolo, dimenzioni e associo la 
	//chiusura della finestra con la callback per l'uscita dal programma
	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title (GTK_WINDOW (window), "Micro Browser");
	gtk_window_set_default_size (GTK_WINDOW (window), 1000, 800);
	g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
 
	//Aggiungo un contenitore alla finestra
	vbox = gtk_vbox_new (FALSE, 4);
	gtk_container_add (GTK_CONTAINER (window), vbox);
 
	//Aggiungo il widget "gtk_scrolled_window_new" che permette di aggiungere
	//le scrollbar alla finestra principale se il contenuto lo richiede
	scrolled = gtk_scrolled_window_new (NULL, NULL);
	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
	gtk_box_pack_start (GTK_BOX (vbox), scrolled, TRUE, TRUE, 0);
 
	//Inizializzo webkit creando l'area che fara il rendering delle pagine
	web_view = webkit_web_view_new ();
 
	//Fisso webkit al nostro "gtk_scrolled_window_new" 
	gtk_container_add (GTK_CONTAINER (scrolled), web_view);
 
	//Instanzio un puntatore per la richiesta di rete con l'uri
	WebKitNetworkRequest *myNetworkRequest= webkit_network_request_new ("https://www.freemedialab.org");
 
	//Lancio la richiesta di rete a webkit
	webkit_web_view_load_request(WEBKIT_WEB_VIEW (web_view), myNetworkRequest );
 
 
	//Mostro tutto avviando il ciclo principale delle Gtk
	gtk_widget_show_all (window);
	gtk_main ();
 
	return 0;
}

Compilare il progetto

Per compilare il progetto basta dare il seguente comando (assicurandosi di avere installato i runtime e i pacchetti di sviluppo delle librerie Gtk+ e WebKitGTK+) :

gcc  microb.c -o microb `pkg-config --cflags --libs webkitgtk-3.0` -Wall -O1 -g 

Oppure servirsi di questo Makefile

CPP = gcc 
OPTS = `pkg-config --cflags --libs webkitgtk-3.0` -Wall -O1 -g

all:
	$(CPP) microb.c -o microb $(OPTS)

clean:
	rm microb

programmazione/gtk/creare_un_browser_web_con_webkitgtk.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)