QWidget在NPAPI插件开发中的使用

本文介绍了在NPAPI插件开发中,如何使用Qt的QWidget并将其转换为NSView,以适应Safari插件开发的需求。由于NPAPI不直接支持NSView,而是支持CALayer,因此详细阐述了从QWidget到NSView再到CALayer的转换过程,涉及QMacNativeWidget、NSView、CALayer的交互操作。
       使用NPAPI(Netscape PluginApplication Programming Interface,网景插件应用程序接口)开发safari插件并没有像使用Cocoa and WebKit那样方便快捷,只可惜后者由于安全性的问题,被苹果无情的抛弃了,无奈只能使用NPAPI。

       NPAPI是用于在浏览器中执行外部应用程序的通用接口,与微软的ActiveX是竞争技术。但是NPAPI是一款跨浏览器的接口,因此在市面上的使用要比ActiveX更为广泛,基本上所有主流的浏览器都支持该接口开发的插件,其中比较有代表性的插件是Adobe Flash Player、QuickTime、RealPlayer、Windows Media Player。在safari中使用该接口优点是将运行插件的进程和safari进程分隔开,保证了数据的安全性,缺点是不能使用cocoa的Interface Builder以及相应的控件来创建界面。

       说了这么多废话,只是为了说明为什么要用NPAPI来开发safari插件。现在说说Qt和使用NPAPI开发safari插件之间的千丝万缕。Qt中所有的控件和窗口都是基于QWidget衍生出来的,而cocoa下的视图和控件都会继承NSView这个类,所以第一步想到的是怎样才能把QWidget转换成NSView呢?查阅了大量的资料发现Qt不愧是跨平台第一解决方案,Qt API中竟然提供了现存的方法和例子:
       QMacNativeWidget*nativeWidget = new QMacNativeWidget();
       nativeWidget->move(0,0);
&nbs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值