QtWebkit中浏览器插件的设计-1
我们都知道浏览器中有一套由Netscape浏览器传承下来的插件接口,包括webkit,firefox都是支持的,但是那个开发起来比较困难,并且是平台相关的,借助于Qt的跨平台的特性,可以方便地为Qt开发出一套跨平台的插件。
QtWebkit中插件可以有两种,一种Mime必须是application/x-qt-plugin或者application/x-qt-styled-widget,而另外一种则无需固定,可以是除了前面的两种以外任意其它Mime类型。
前一种相对来说开发起来比较容易,只需重新实现
QObject * QWebPage::createPlugin ( const QString & classid, const QUrl & url, const QStringList & paramNames, const QStringList ¶mValues )
这个函数即可,这个函数会把HTML文件中的参数都传递进来
下面是一个例子:
class PluginPage : public QWebPage
{
public:
PluginPage(QObject *parent = 0)
: QWebPage(parent) {}
protected:
virtual QObject *createPlugin(const QString &classid, const QUrl &url,
const QStringList ¶mNames,
const QStringList ¶mValues)
{
QObject *result = 0;
if (classid == "pushbutton")
result = new QPushButton();
else if (classid == "lineedit")
result = new QLineEdit();
if (result)
result->setObjectName(classid);
//可以进行一些处理
return result;
}
};
这样下面的网页就可以一个pushbutton了:
<html><body><object type='application/x-qt-plugin' classid='pushbutton' id='mybutton'/></body></html>
并且还可以在JavaScript访问到QPushbutton,例如:
document.getElementById('mybutton').text将会返回按钮上的字符串。
另外一种比较麻烦,回在下一篇中讲解。
转载于:https://www.cnblogs.com/baizx/archive/2010/07/26/1785573.html
QtWebkit中浏览器插件的设计-1相关推荐
- android中的插件开发框架,设计并开发一个 Android 的插件化框架
结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...
- ie11加载java插件_IE浏览器中ActiveX插件的使用
在某些行业的B/S应用系统中会不可避免的要用到ActiveX浏览器插件,而ActiveX插件只能在IE内核浏览器中运行,而常用的IE浏览器的版本众多,从IE6到IE11,总共有6个版本,这就给开发的应 ...
- Google浏览器中扩展插件方法
Google浏览器中扩展插件方法 一.按照下图流程打开谷歌浏览器的"扩展程序". 二.点击打开"开发者模式". 三.点击"加载已解压的扩展程序&quo ...
- 实用软件/浏览器插件/网站合集(个人向,更新中)
文章目录 说明 软件 浏览器插件 Tampermonkey脚本 网站 好的软件,插件和网站能大大提高工作效率. 以下是我认为的好用的软件,个人向,排名不分先后(更新中) 欢迎大家访问我的个人网站 ww ...
- 浏览器中Vimium 插件快捷键
浏览器中Vimium 插件快捷键 Vimium这个名字其实是Vim和Chromium的合体.很多人可能不知道Vim,Vim是一个类似于Vi的著名的功能强大.高度可定制的Linux等平台上的文本编辑器, ...
- 如何在苹果电脑Mac浏览器Safari中安装使用浏览器插件
Safari 作为苹果的御用默认浏览器,随着Mac OS X Lion 的发布重获新生,目前经历了几个版本的迭代,拓展性上虽仍不如 Google Chrome,但在 Mac OS 下,Safari 的 ...
- chrome浏览器插件开发-在当前网页中嵌入插件页面
chrome浏览器插件开发-在当前网页中嵌入插件页面 既然想嵌入插件页面就是需要写html和css 在myPlugin中创建contentCss文件夹,里面创建index.css文件 在manifes ...
- android个人中心界面_Android 机也能用上你熟悉的浏览器插件,这些浏览器不可错过...
在 Android 平台上选择 Chrome 浏览器的人不在少数:有的因为多平台无缝的同步体验,有的因为强大.及时的新功能支持,有的因为完整的 Google 生态服务捆绑-- 但无论出于什么理由,桌面 ...
- 【戴嘉乐】IPFS伴侣:一个对IPFS资源管理更加便捷的浏览器插件
作者简介:戴嘉乐( Mr.Maple ) | 前百度高级研发工程师 | IPFS应用实践者&布道师| 个人网站:https://www.daijiale.cn 微信号:daijiale6239 ...
最新文章
- Science杂志 | 人类基因组草图发布20周年,遗留的9大问题
- Android10.0 Binder通信原理(二)-Binder入门篇
- android 反调试 方案,Android Native反调试—检测TracerPid值
- 【CentOS Linux 7】实验1【VMware安装、新建虚拟机;63个基础命令运行结果图】
- 在eclipse中安装与配置maven环境
- docker重启mysql数据丢失_mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发
- 极寒极热天气是否可以使用福禄克DSX2-5000网线测试仪工作
- 【OS学习笔记】十一 实模式:中断-软中断和硬中断基本原理
- 雄安大学真的来了!占地总面积2550亩!
- java幻灯片播放代码_简单常用的幻灯片播放实现代码
- jquery-幻灯片效果-编辑中
- Mysql 的时区问题:zeroDateTimeBehavior CONVERT_TO_NULL convertToNull
- 装修好的房子多久能住 入住需要注意什么?
- HTM皮质学习算法资料
- C++实现整数值转中文大写
- 52类110个主流的Java框架
- T0.Games欢迎高端加密NFT入驻
- 齐河木凡装饰工程有限公司简介
- 粒子群算法改进——压缩因子法
- 【淘宝API开发系列】获取商品详情,商品评论、卖家订单接口