日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

QtWebkit中浏览器插件的设计-1

發布時間:2023/12/9 HTML 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的QtWebkit中浏览器插件的设计-1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。