首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式linux智能设备中web支持的实现(5)

嵌入式linux智能设备中web支持的实现(5)

清单 13. createPlugin 函数的实现
                                 class QMyWebPage : public QWebPage  {  protected:  QObject *createPlugin ( const QString &classid, const QUrl &url,  const QStringList &paramNames, const QStringList &paramValues );  ...  ...  };  QObject* QMyWebPage::createPlugin ( const QString &classid, const QUrl &url,  const QStringList &paramNames, const QStringList &paramValues )  {     if ( classid == "VideoPlayer" )     {         // 在这里创建一个自定义的带视频播放功能的窗体,        VideoWindow* window = new VideoWindow();         // 配置参数如 width=800 等,会在参数 paramNames 和 paramValues 中传过来        window->setGeometry( ........ ) ;         window->setSourceFile( ...... ) ;                 return window;       // 返回创建的窗体    }     ...  }

与截取 request 的方法一样,我们要让自己 QMyWebPage 被使用:
QWebView* Webview = new QWebView ( this );  QMyWebPage* page = new QMyWebPage ();  Webview->setPage ( page );    // 让 WebView 使用我们的 QMyWebPage

注意加载页面之前要打开插件使能的选项,方法如下:
QWebSettings* setting = Webview->settings ();  setting->setAttribute ( QWebSettings:luginsEnabled, true );

至此,我们创建了自己的网页元素:类型为 VideoPlayer 的 object。网页可以像使用标准网页元素一样,灵活的使用嵌入式平台自己特有的功能。当然,不一定非要把这个网页元素用 application/x-qt-plugin 或者是 application/x-qt-styled-widget 来定义,Qt 也支持 type 不是这两者或者以动态链接库的方式来使用插件,这样就可以支持类似 FLASH 之类非 Qt 自定义的 object,关于这方面更多信息可以参考 Qt 的文档。
继承事业,薪火相传
返回列表