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

转载 2013年12月04日 14:15:33

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

sudo cp libxul.so /usr/lib/

sudo cp libmozjs.so /usr/lib/

sudo cp 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");

/* xulrunner库文件的位置 不同系统可能会不同*/

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;

}


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

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




开源浏览器:Dillo Web Browser简介

****************************************************************************************************...
  • wavemcu
  • wavemcu
  • 2014年03月09日 13:17
  • 4151

Gtk编程实例-Web浏览器源代码

  • 2008年04月05日 16:11
  • 15KB
  • 下载

GTK编程:将图片文件按指定比例显示

实现功能:将指定的图片文件按指定比例在窗体中显示注意:这段代码没有信号处理的实现,当点击关闭窗体的时候,虽然窗体关闭了,但程序并没有真正退出。/* File: SizeShow.c * Date: ...
  • wonxxx
  • wonxxx
  • 2015年03月31日 23:21
  • 1167

GTK+浅谈之十三网络编程

一、简介         网络编程是Linux功能的强项,Gtk+2.0结合Linux系统的网络编程编写服务器和客户端。 二、详解 1、简单的ECHO程序        套接字...
  • taiyang1987912
  • taiyang1987912
  • 2015年10月09日 17:54
  • 1616

Ubuntu下GTK的安装、编译和测试

我利用此方法成功在UBUNTU 10.04下安装GTK 2.20.1。 一、安装   1、安装gcc/g++/gdb/make 等基本编程工具 $sudo apt-get insta...
  • chinajobs
  • chinajobs
  • 2015年08月22日 20:25
  • 547

Linux下的GTK图形界面编程

GTK(GIMP Toolkit)是一个图形用户编程的接口工具。它注册完全免费,所以用来开发自由软件或商业软件都不需要花费什么。现在很多Linux集成系统都已经将GTK1.2版本打包进去了。包括Red...
  • linuxchyu
  • linuxchyu
  • 2013年11月27日 13:58
  • 1578

gtk多线程编程用例

#include gtk/gtk.h>  static GtkWidget *fixed;  static GtkWidget *button1;  static GtkWidget *butt...
  • qq61394323
  • qq61394323
  • 2014年07月19日 17:09
  • 1342

GTK多窗口的创建及窗口之间数据的交互

主要参考了这篇文章:一步一步学GTK+之多窗口,
  • bearing_bear
  • bearing_bear
  • 2014年06月11日 19:44
  • 1802

GTK+-3.0编程 (五) GtkBuilder用于快速创建界面,它读取一个xml文件

GTK+-3.0编程 (五) GtkBuilder用于快速创建界面,它读取一个xml文件
  • ztguang
  • ztguang
  • 2016年11月15日 23:27
  • 1459

一个五脏俱全的Gtk小程序

refer from: 本人自从学习Gtk以来,一直没能做一个像模像样的例子,前段时间抽空写了一个小程序,大概800多行,是调用Gtk和GLib库共同编译的,贴到这里和大家分享:   ...
  • samssm
  • samssm
  • 2014年04月21日 17:15
  • 929
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gtk 应用程序使用内嵌浏览器 gtkmozembed
举报原因:
原因补充:

(最多只允许输入30个字)