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 &paramValues )

这个函数即可,这个函数会把HTML文件中的参数都传递进来

下面是一个例子:

class PluginPage : public QWebPage

{

public:

PluginPage(QObject *parent = 0)

: QWebPage(parent) {}

protected:

virtual QObject *createPlugin(const QString &classid, const QUrl &url,

const QStringList &paramNames,

const QStringList &paramValues)

{

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql左键关联_MySQL的:左键删除重复列加入,3个表

我有一个表,使用3个外键到其他表.当我执行左连接时,我会收到重复的列.MySQL表示,USING语法将减少重复的列,但没有多个键的示例.鉴于&#xff1a;mysql> describe recipes;---------------------------------------------------------------| Field | Type | Null | Key | De…

cisco 双ISP线路接入,链路自动切换方案

最近接到的一个项目&#xff0c;客户总部在惠州&#xff0c;分部在香港&#xff0c;在香港分部设有ERP服务器与邮件服务器&#xff0c;总部出口为铁通10M光纤与网通1M DDN 专线&#xff08;新增&#xff09;&#xff0c;原总部是用netscreen 防火墙与香港的pix 515作IPsec 对接…

js遮罩层以及移动端的上拉框

今天发一个之前写的移动端的项目&#xff0c;主要是讲一下遮罩层的应用&#xff0c;以及顺带提一下移动开发的一些事情。首先按钮点击弹出遮罩层这个大家很熟悉了&#xff0c;这里还是给大家提供一份代码&#xff0c;跟通用的没太大区别&#xff0c;主要讲一下方法&#xff1a;…

精简ABP的模块依赖

ABP的模块非常方便我们扩展自己的或使用ABP提供的模块功能&#xff0c;对于ABP自身提供的模块间的依赖关系想一探究竟&#xff0c;并且试着把不必要的模块拆掉&#xff0c;找到那部分核心模块。本次使用的是AspNetBoilerplate。源码下载从Github下载ABP源码后&#xff0c;进入s…

你这飞机会爆炸吗?航空公司含泪甩卖49元机票,却被超模君挖出秘密!

全世界只有3.14 % 的人关注了爆炸吧知识制作团队制作人 超模君编剧 恐恐恐插画 杨羊羊 友情出演 超模君 章小天……小天吐槽时刻……超模君之后还会采访谁呢小天有小道消息哦扫描这个二维码你将会有机会见识到超模君的科普沙雕网友们一起斗图↓↓↓↓…

[zz]WCF分布式开发步步为赢(0):WCF学习经验分享,如何更好地学习WCF?

WCF分布式开发学习&#xff0c;应该从哪里开始? 学习WCF是不是就不需要学习Enterprise Sevices(COM).Net Remoting、Web Service(ASMX)、WSE3.0和MSMQ消息队列&#xff1f; WCF分布式开发学习&#xff0c;如何制定一个合理的计划&#xff0c;才能更好地学习WCF分布式应用开…

C#报错:创建调试信息文件 ……obj\Debug\model.pdb: 拒绝访问

错误&#xff1a;创建调试信息文件“.......\obj\Debug\model.pdb”时发生错误 --“......\obj\Debug\model.pdb: 拒绝访问。 解决办法如下&#xff1a; 删除该项目下的 bin 和 obj 文件夹 就可以了,然后右键项目名点生成&#xff0c;就会重新生成bin和obj文件夹。

linux nginx mysql php 5.5._搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程

之前的Web服务器都是通过yum搭建的&#xff0c;想要添加新模块或者更新某些软件都很不方便(牵一发而动全身啊&#xff01;)。所以&#xff0c;现在准备将环境改为源码编译安装&#xff0c;这样便于调整&#xff0c;性能上也会比yum方式好很多。以下是我的安装步骤&#xff0c;我…

ASP 缩略图 (纠错版)

网上很多缩略的代码&#xff0c;不过很多都是错误的。 这个是纠正版&#xff0c;本人已修改。 Code<%Function PicReSize(picURL)FileName1Mid(picURL,13,22)Set Jpeg Server.CreateObject("Persits.Jpeg") 获取源图片路径Path Server.MapPath(picURL) 打开源图…

Blazor Server 应用程序中进行 HTTP 请求

翻译自 Waqas Anwar 2021年5月4日的文章 《Making HTTP Requests in Blazor Server Apps》 [1]Blazor Server 应用使用标准的 ASP.NET Core 应用程序&#xff0c;在服务端执行 .NET 代码。在 Blazor Server 应用程序中&#xff0c;我们可以像在 ASP.NET Core Web 应用程序中那样…

遍历属性动态展示列

为什么80%的码农都做不了架构师&#xff1f;>>> 前端根据后台返回json对象(Map)进行动态列展示。 javascript属性遍历和访问&#xff1a; //var obj {name:"h2do",age:0,sex:"男"}; function User(){this.name "h2do";this.age 0…

厉害了!这几位小学生竟然在艺术界掀起一阵风暴,简直是灵魂画手无疑.........

全世界只有3.14 % 的人关注了爆炸吧知识高能预警&#xff01;请查阅全文&#xff01;在孩子们的眼中&#xff0c;世间万物都被赋予了无限的想象力&#xff0c;而绘画是他们独特想法和思维的表达。一支小小的画笔&#xff0c;便能创造一个千奇百怪的世界。为鼓励孩子们拿起画笔&…

java范型_Java知识点总结(Java泛型)

Java知识点总结(Java泛型)(Java知识点总结)[Java, Java泛型][toc]泛型泛型就是参数化类型适用于多种数据类型执行相同的代码泛型中的类型在使用时指定泛型归根到底就是“模版”优点&#xff1a;使用泛型时&#xff0c;在实际使用之前类型就已经确定了&#xff0c;不需要强制类型…

花开的声音 - 张靓颖

姓名&#xff1a;张靓颖 / Jane Zhang性别&#xff1a;女 地区&#xff1a;内地 职业&#xff1a;歌手 星座&#xff1a;天秤座 血型&#xff1a;O 身高&#xff1a;162cm张靓颖&#xff0c;中国女歌手&#xff0c;四川成都人。2005年参加湖南卫视…

基于事件驱动架构构建微服务第5部分:容器化(Web Api Core 和 SQL Server Linux)

原文链接&#xff1a;https://logcorner.com/building-microservices-through-event-driven-architecture-part5-dockerization-web-api-core-and-sql-server-linux/在本文中&#xff0c;我将谈谈web api和sql server linux数据库的容器化Web API将发布并上线&#xff0c;它需要…

eclipse工程 'cocostudio/CocoStudio.h' file not found

android.mk里有这样配置&#xff1a; LOCAL_PATH : $(call my-dir)include $(CLEAR_VARS)$(call import-add-path,$(LOCAL_PATH)/../../cocos2d) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external) $(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos) $(…

爆笑!物理书上的照片能不能好好选选啊喂!

全世界只有3.14 % 的人关注了爆炸吧知识在物理书里&#xff0c;有各种物理大佬的照片。他们正襟危坐&#xff0c;他们不苟言笑&#xff0c;他们看起来就很“物理”。但是&#xff0c;知识君想说&#xff0c;谁不是个有血有肉的人啊&#xff1f;&#xff01;选照片的时候给我好好…

java字符数组转化为字符串_java字符数组转字符串,java数组转字符串

字符串转数组使用Java split() 方法split() 方法根据匹配给定的正则表达式来拆分字符串。注意&#xff1a; . 、 | 和 * 等转义字符&#xff0c;必须得加 \\。多个分隔符&#xff0c;可以用 | 作为连字符。// 字符串转数组 java.lang.StringString str "0,1,2,3,4,5"…

计算机网络体系结构概述

1.Internet结构 2.计算机网络的体系结构 1&#xff09;网路协议主要由以下三要素组成&#xff1a; 语法&#xff0c;即数据与控制信息的结构或格式&#xff1b; 语义&#xff0c;即需要发出何种控制信息&#xff0c;完成何种动作以及做出何种响应&#xff1b; 同步&#xff0c;…

如何识别是三层交换机还是二层交换机

举例说明:302620125012看第2位是0~4的说明它是2层交换机3550看第2位是5~9的说明它是3层交换机LI(LitesoftwareImage)表示设备为弱特性版本。SI(StandardsoftwareImage)表示设备为标准版本&#xff0c;包含基础特性。 EI(EnhancedsoftwareImage)表示设备为增强版本&#xff0c;包…