gtk 应用程序使用内嵌浏览器 gtkmozembed

来源:互联网 发布:java获取字符时间毫秒 编辑:程序博客网 时间:2024/04/29 12:34

GTK程序中内嵌浏览器


我们使用的是gtkmozembed它由xulrunner提供,这两个东西到底是什么意思,我也不知道。

环境搭建:

用的系统是ubuntu 10.04

sudoapt-get install xulrunner-1.9.2-dev

这一行就够了libxul-dev就默认下载了(应该是,因为在/usr/lib/pkgconfig/下有对应的文件)

还运行过一条,不知道有没有这个必要

sudo apt-get install xulrunner



编译:

添加头文件

#include</usr/include/xulrunner-1.9.2.24/gtkmozembed.h>


链接

链接的时候,添加两个链接选项

QWQ_LIB+= `pkg-config --libs libxul`

QWQ_LIB+= `pkg-config --libs mozilla-js`



运行

运行的时候,会提示找不到库文件:

cd/usr/lib/xulrunner-1.9.2.24

sudocp libxul.so /usr/lib/

sudocp libmozjs.so /usr/lib/

sudocp libxpcom.so /usr/lib/


把这三个库文件拷贝过去就可以了



代码编写:



源文件

#include <gtk/gtk.h>

#include</usr/include/xulrunner-1.9.2.24/gtkmozembed.h>

int main(int argc, char *argv[])

{

gtk_init(&argc,&argv);

GtkWidget *window =gtk_window_new(GTK_WINDOW_TOPLEVEL);

gtk_window_set_default_size(GTK_WINDOW(window),640, 480);

g_signal_connect(GTK_OBJECT(window),"destroy",G_CALLBACK(gtk_main_quit), NULL);

gtk_moz_embed_set_profile_path("/home/qwq/zhihui","mybrowser");

gtk_moz_embed_set_path("/usr/lib/xulrunner-1.9.2.24");

GtkWidget *html =gtk_moz_embed_new();

gtk_container_add(GTK_CONTAINER(window),html);

gtk_moz_embed_load_url(GTK_MOZ_EMBED(html),"http://www.126.com/");

gtk_widget_show_all(window);

gtk_main();

return 0;

}



makefile

gtkweb:gtkweb.o

gcc -Wall gtkweb.o -o gtkweb`pkg-config --libs gtk+-2.0 libxul mozilla-js`

gtkweb.o:

gcc -Wall -c gtkweb.c -ogtkweb.o `pkg-config --cflags gtk+-2.0`

c:

rm gtkweb gtkweb.o

r:

./gtkweb



原创粉丝点击